将star参数传递给shell脚本文件

时间:2014-11-03 15:42:02

标签: shell sh

我写了一个非常简单的脚本echo $1

print_star.sh的内容是

echo $1

现在,当调用此脚本./print_star *时,它会显示该文件夹的第一个文件。

如何将星号(*)传递给shell脚本?

PS。我试图使其简单,但目的是传递一个完整的SQL查询(使用星号)将结果导出到文件。

3 个答案:

答案 0 :(得分:1)

添加引号:echo "$1"
你应该几乎总是在shell脚本中引用变量;如果不这样做会导致不可预测的结果(正如您所经历的那样)。

  

调用此脚本./print_star *

这似乎也是错误的,您应该./print_star \*./print_star '*'来阻止*在您调用它的shell中展开。

答案 1 :(得分:0)

修改脚本以在"

周围添加$1
[prompt] cat print_str.sh
echo "$1"

并使用单引号

中的*调用脚本
./print_str.sh '*'

答案 2 :(得分:0)

最简单的解决方案是引用:

./print_star '*'

./print_star \*

如果你正在使用bash,你也可以这样做:

set -o noglob
./print_star *

或者

set -f
./print_star *

在最后一种情况下,您可以使用set -o globset +f重置行为