#unix #scripting #ksh
#unix #сценарии #ksh
Вопрос:
Я пишу новый скрипт, который создает псевдонимы на основе результатов запроса ls. Сам сценарий достаточно прост, однако то, что меня сбивает с толку, — это вызов псевдонима. Я не могу понять, как ссылаться на переменную, которую я сгенерировал в другой строке, когда я вызываю команду alias:
for f in `ls -1 -O dir /dev/fs/`
do
fl=`echo $f | tr '[:upper:]' '[:lower:]'`
alias "$fl"_drive='cd /dev/fs/$f'
done
Именно эта ссылка на переменную $ f в вызове alias сбивает меня с толку. Кто-нибудь может пролить свет на правильный синтаксис для этого? Заранее спасибо.
Ответ №1:
Я предполагаю, что вы правильно хотите $f
указать на файл, который вы в данный момент просматриваете.
Оболочка ничего не раскрывает внутри одинарных кавычек ( '
), поэтому ваш псевдоним содержит литерал $f
. Вместо этого используйте двойные кавычки.
alias "$fl"_drive="cd /dev/fs/$f"
Ответ №2:
Попробуйте:
alias "${fl}_drive"="cd /dev/fs/$f"