假设我有如下所示的脚本。
demo.sh:
name=$1
age=$2
echo $name
echo $age当我执行脚本时
sh demo.sh ARUN 24产出如下:
ARUN
24但是,当我执行脚本时
sh -c demo.sh ARUN 24输出不算什么。
我知道如果我使用sh -c参数,将从$0开始分配参数。但是只有文件名被分配给$0。在使用sh -c时,如何分配多个参数?请解释一下它是如何工作的。
发布于 2015-01-30 06:51:44
请使用以下语法:
sh -c "demo.sh ARUN 24"在您的示例中,传递给sh命令的这两个参数,而不是demo.sh脚本。将它们放入引号中,将其传递给脚本。
注意,最简单的方法是使脚本可执行,并向其添加一条hashbang (#!)行。然后脚本将如下所示:
#!/bin/sh
name=$1
age=$2
echo $name
echo $age通过以下方式使其可执行:
chmod +x demo.sh然后按如下方式运行它(如果没有解释器sh,现在从#!行收集解释器):
./demo.sh ARUN 24https://stackoverflow.com/questions/28230623
复制相似问题