почему я не могу использовать сенсорный вообще? - PullRequest
0 голосов
/ 17 марта 2020

У меня есть этот скрипт, который в основном должен добавить

alias www-owns-assets="sudo chown www-data public/assets -R"

в ~ / .bash_aliases, если эта строка (или этот файл) не существует.

Вот скрипт:

ls ~/

LINE='alias www-owns-assets="sudo chown www-data public/assets -R"'

FILE='~/.bash_aliases'

touch $FILE

grep -qsFx -- "$LINE" $FILE || echo "$LINE" >> $FILE

В строке touch выдается ошибка:

touch: cannot touch '~/.bash_aliases': No such file or directory

, даже если ls ~ / работает нормально. Что я делаю неправильно? (Я пробовал с кавычками и без них, но, возможно, не с правильными.

1 Ответ

1 голос
/ 17 марта 2020

Использование ~ ненадежно, оно может работать или не работать со скриптами, и ~ не будет расширяться, если оно заключено в кавычки (одинарное или двойное). Попробуйте вместо этого использовать $HOME.

FILE=$HOME/.bash_aliases

... Или удалите кавычки.

FILE=~/.bash_aliases
  • Но, как я уже сказал, лучше использовать $HOME.
  • В качестве примечания избегайте использования заглавных букв для переменных, предназначенных исключительно для внутренних целей.
...