【问题标题】:How do you reference a variable within a string in UNIX?如何在 UNIX 中引用字符串中的变量?
【发布时间】:2011-04-22 15:05:28
【问题描述】:

我正在编写一个基于 ls 查询结果创建别名的新脚本。脚本本身很简单,但是让我感到困惑的是别名调用。当我调用别名命令时,我无法弄清楚如何引用我在另一个字符串中生成的变量:

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 变量的引用让我大吃一惊。任何人都可以阐明正确的语法吗?提前致谢。

【问题讨论】:

    标签: unix scripting ksh


    【解决方案1】:

    我猜你希望$f 指向你当前循环的文件。

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

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

    【讨论】:

    • 是的,做到了。感谢您的帮助!
    【解决方案2】:

    试试:

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

    【讨论】:

      猜你喜欢
      • 2018-10-01
      • 1970-01-01
      • 2021-09-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多