BASH 动态命令生成
BASH Dynamic Command Generation
我被这个问题困住了:我需要一个必须传递给 ls 命令的动态表达式生成。
这是我试过的代码:
op="ext"
fileName="MDL_test_"
fileExt=".csv"
if [[ $op == "noext" ]] ; then
searchExp="*$fileName*"
else
searchExp="*$fileName*$fileExt"
fi
ls "$("./files/"$searchExp)"
但是当我执行脚本时,我得到的是:
./ext_test.sh: line 15: ./files/MDL_test_30160410.csv.gz: Permission denied
ls: cannot access : No such file or directory
我想我做错了什么,但我想不通...
你只需要将字符串分段构建;大多数语法在将扩展结果传递给 ls
.
之前由 shell 评估
if [[ $op == noext ]]; then
fileExt=
else
fileExt=.csv
fi
ls ./files/*"$fileName"*"$fileExt"
我被这个问题困住了:我需要一个必须传递给 ls 命令的动态表达式生成。
这是我试过的代码:
op="ext"
fileName="MDL_test_"
fileExt=".csv"
if [[ $op == "noext" ]] ; then
searchExp="*$fileName*"
else
searchExp="*$fileName*$fileExt"
fi
ls "$("./files/"$searchExp)"
但是当我执行脚本时,我得到的是:
./ext_test.sh: line 15: ./files/MDL_test_30160410.csv.gz: Permission denied
ls: cannot access : No such file or directory
我想我做错了什么,但我想不通...
你只需要将字符串分段构建;大多数语法在将扩展结果传递给 ls
.
if [[ $op == noext ]]; then
fileExt=
else
fileExt=.csv
fi
ls ./files/*"$fileName"*"$fileExt"