如何在UNIX中引用字符串中的变量?

时间:2011-04-22 15:05:28

标签: unix scripting 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

这是对alias调用中的$ f变量的引用,它让我失望了。任何人都可以对这个正确的语法有所了解吗?提前谢谢。

2 个答案:

答案 0 :(得分:3)

我想您希望$f指向您当前循环的文件。

shell不会在单引号(')内展开任何内容,因此您的别名包含文字$f。改为使用双引号。

alias "$fl"_drive="cd /dev/fs/$f"

答案 1 :(得分:2)

尝试:

alias "${fl}_drive"="cd /dev/fs/$f"