2016-06-25 4 views
1
myDir = 'apple' 

Если у меня есть переменная выше, какую функциональность я могу использовать для ее использования в команде? (Я предполагаю, что это какая-то замена), поэтому я хотел бы знать, как это называется, если так)Базовая переменная-заменитель в команде

Как использовать приведенную выше переменную, чтобы сделать ls /home/applefruit, так как очевидно ls /home/$myDirfruit не работает.

ответ

2

Прежде всего, ваше объявление переменной неверно. Там не должно быть пробелов вокруг = в объявлении:

myDir='apple' 

Теперь ls /home/$myDirfruit не работает, потому что myDirfruit обрабатывается как имя переменной, а не только myDir. Вы должны использовать {} заключить имя переменной, когда имя отрабатывался по уважительной имя переменной учредительного характера:

ls /home/${myDir}fruit 

будет расширена:

ls /home/applefruit 

Кроме того, если у вас есть пробелы в имени переменной например myDir='foo bar', используйте кавычки переменной:

ls /home/"${myDir}"fruit 
+2

Просто для полноты картины, котировки достаточно при цитировании в одиночку '$ myDir' уронить брекеты. 'ls/home /" $ myDir "fruit'. В общем случае скобки являются каноническим способом расширения параметра, но могут быть отброшены, когда имя параметра остается недвусмысленным. – chepner