为什么当我运行sh -c [script]时,它不会接受任何位置参数?

时间:2014-05-12 08:18:54

标签: shell

我很困惑;我用sh -c运行一个脚本,但如果我想传递一个参数,它将被忽略。

示例:

# script.sh
param=$1
echo "parameter is: " $param

如果我将其作为

运行

sh -c ./script.sh hello

我在输出中什么也没得到

为什么会这样?我怎么能避免这个?

2 个答案:

答案 0 :(得分:1)

这对你有用:

sh -c "./script.sh hello"

如果你这样运行:

sh -c ./script.sh hello

hello成为sh的第二个参数,./script.sh运行时没有参数。

答案 1 :(得分:0)

-c开关接受一个参数。 shell将自己进行解析。 E.g。

sh -c './script.sh hello'