如何在使用变量从另一个脚本中调用shell脚本时引用参数

时间:2011-12-06 12:11:01

标签: shell

我有两个shell脚本。一个脚本根据收到的参数动态创建对第二个脚本的调用,然后执行调用。

我的问题是第一个脚本获取的参数可能包含空格,因此我必须在调用script2时引用该参数。

这是问题的一个例子:

script1.sh:

#!/bin/sh
param=$1
command="./script2.sh \"$param\""
echo $command
$command

script2.sh:

#!/bin/sh
param=$1
echo "the value of param is $param"

当我跑步时:

./script1.sh "value with spaces"

我明白了:

./script2.sh "value with spaces"
the value of param is "value

这当然不是我需要的。

这里有什么问题?

TIA。

编辑:

由于tripleee评论中有用的link,我找到了解决方案。这是为了防止任何人。

简而言之,为了解决这个问题,我们应该使用数组作为参数。

script1.sh:

#!/bin/sh
param=$1

args=("$param")
script_name="./script2.sh"
echo $script_name "${args[@]}"
$script_name "${args[@]}"

1 个答案:

答案 0 :(得分:1)

使用"$@"引用所有命令行参数,引用完整。