Та строка в Вашем .profile
должен быть один из
export PATH="$PATH:$HOME/Unix/homebrew/bin"
PATH="$PATH:$HOME/Unix/homebrew/bin"
PATH=$PATH:$HOME/Unix/homebrew/bin
PATH=$PATH:~/Unix/homebrew/bin
~
символ только расширен до Вашего корневого каталога, когда это - первый символ слова, и он закрыл кавычки. В том, что Вы записали, ~
между двойными кавычками и поэтому не расширен. Даже если Вы записали export "PATH=$PATH:"~/Unix/homebrew/bin
, ~
не был бы расширен, потому что это не в начале слова оболочки.
Существует специальное разрешение, которое предназначается для записи значений для PATH
и подобные переменные. Если ~
сразу после знака "равно", который отмечает присвоение, или если ~
сразу после a :
в правой стороне присвоения затем это расширено. Только простые присвоения имеют это разрешение, export PATH=…
не рассчитывает (это - вызов к export
встроенный, который, оказывается, имеет аргумент, который содержит a =
символ).
Здесь, Вы не должны экспортировать PATH
потому что это уже экспортировано. Вы не должны звонить export
когда Вы измените значение переменной (кроме старых Оболочек Bourne, которые Вы не найдете на OSX или Linux). Кроме того, в присвоении (снова, export
не рассчитывает), Вам не нужны двойные кавычки вокруг правой стороны, таким образом, PATH=$PATH:~/Unix/homebrew/bin
безопасно даже если $PATH
содержит пробелы.
Вы могли сделать две вещи со своим regex относительно расширения типа файла. Вы могли добавить расширения всех заглавных букв непосредственно regex, т.е. (tar|TAR)
или можно добавить ?i
флаг для создания поиска нечувствительным к регистру. Посмотрите это для руководства: https://stackoverflow.com/questions/43632/can-you-make-just-part-of-a-regex-case-insensitive
Затем относительно завершения многословного вот другой ответ: https://stackoverflow.com/questions/1146098/properly-handling-spaces-and-quotes-in-bash-completion (я лично использую _ вместо пробелов во всех моих файлах поэтому),
Что касается того, чтобы сделать вещи нечувствительными к регистру, вы можете заставить [113752]$curr[113753] использовать [113754]${cur,,}[113755] в нижнем регистре для compgen. Функция Full будет выглядеть следующим образом после обоих изменений:
Это сделает все имена файлов, совпадающие с регистром, нечувствительными. Если вы хотите, чтобы расширение было нечувствительным только к регистру, вы можете сделать некоторую манипуляцию со строкой в [113756]$cur[113757], чтобы сделать только строчное расширение.[113296].