Я бил головой, пытаясь создать эквивалент bash псевдонима csh. Довольно простой псевдоним в CSH является:Как создать эквивалент bash псевдонима csh, который задает переменную
alias gfiles='files="\`grep -l \\!*\`"; echo $files'
В Баш псевдоним не будет работать из-за подстановки параметров и функция не будет работать, так как он должен установить переменную в родительской оболочке. Этот псевдоним позволяет вам использовать vi или ls или более соответствующие файлы. Эхо не совсем необходимо, но я нашел его полезным. Любая идея, как сделать эквивалент в bash?
А? Функции абсолютно могут устанавливать переменные в вызывающих; они не работают в подпроцессах, если вы не делаете что-то, что заставляет это. –
, который сказал, используя ** скалярную переменную ** (одну строку) для хранения ** списка ** имен файлов (каждая из которых является самой строкой) является чрезвычайно плохой практикой. Что произойдет, если нужно хранить имена с пробелами? Соответствующая практика заключается в использовании массива. –