我正在编写一个新脚本,根据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
这是对alias调用中的$ f变量的引用,它让我失望了。任何人都可以对这个正确的语法有所了解吗?提前谢谢。
答案 0 :(得分:3)
我想您希望$f
指向您当前循环的文件。
shell不会在单引号('
)内展开任何内容,因此您的别名包含文字$f
。改为使用双引号。
alias "$fl"_drive="cd /dev/fs/$f"
答案 1 :(得分:2)
尝试:
alias "${fl}_drive"="cd /dev/fs/$f"