调用变量来运行脚本

时间:2012-09-30 03:28:03

标签: linux bash

我有一个脚本,列出目录中的所有文件,按字母顺序列出它们,并将文件号放在文件名之前。

#!/bin/bash

x=1
cd ~/bin

for f in *
do
    if [ -f $f ]; then
        echo "$x: $f"
        declare a$x=$f
        x=$(expr $x + 1)
    fi
done

read -p "What would you like to execute?: " num
$num

输出

1: file0
2: file1
3: file2

运行$ num将执行命令

a1

这不是命令。我想要做的是运行$ a1等于(即file0)。我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

看起来您正在实施select内置命令:

PS3="What would you like to execute?: "
select cmd in *; do
    $cmd
    break
done

答案 1 :(得分:0)

您必须使用eval命令:

eval \$a0

希望这有助于=)

编辑:修正了缺少反斜杠