通过" *"传递一些争论char,我的shell认出来了 作为" ls myfolder"命令,所以打印到stdout这个命令的结果。
有什么方法可以解决这个问题吗?
1 #!/bin/bash
2
3 if [ $# -lt 3 ]; then
4 echo "Some arguments are missing"
5 fi
6
7 #passing "*" as argument
8 echo $2
9 # the result is file1.txt file2.txt...and more..
答案 0 :(得分:1)
Bash在调用脚本之前扩展*
,即$2
var将填充该目录中的所有内容。
与调用相同:
./script.sh with every file listed separated by spaces as arguments
如果你想要一个*
作为var,请像这样调用脚本:
./script.sh \*
答案 1 :(得分:0)
将脚本调用为
./script \*
或
./script '*'
去掉与*
相关的特殊含义,即防止全局化。
答案 2 :(得分:0)
如果不引用它们,参数扩展会进行路径名扩展。
InfluxDB 0.9.x