#bash #unix #cat
#bash #unix #cat
Вопрос:
Я пытаюсь использовать относительный путь в качестве аргумента для другой команды. Похоже, что автоматическое расширение пути не работает, потому что это строка. Как вы можете передать строковую переменную cat
команде, чтобы она разрешила файл?
PEM="~/.ssh/my.pem"; cat $PEM
// cat: ~/.ssh/my.pem: No such file or directory
PEM=~/.ssh/my.pem; cat $PEM
// gives key
Ответ №1:
Расширение Tilde ( ~
) не выполняется оболочкой при помещении в кавычки или экранировании.
Расширение правильно происходит, когда вы ставите ~
внешние кавычки:
PEM=~"/.ssh/my.pem"; cat "$PEM"
Вместо этого вы также можете использовать переменную HOME
среды:
PEM="$HOME/.ssh/my.pem"; cat "$PEM"