关于unix:如何调用shell脚本并从另一个shell脚本传递参数

How to call a shell script and pass argument from another shell script

我从另一个shell脚本调用shell脚本,而被调用的脚本需要一些输入(命令行)参数。我在下面提到了代码,但这不起作用。我不知道为什么参数值没有传递给被调用的脚本。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
script1.sh
=======================================
#!/bin/bash
ARG1="val1"
ARG2="val2"
ARG3="val3"
. /home/admin/script2.sh"$ARG1""$ARG2""$ARG3"


script2.sh
=======================================
#!/bin/bash
echo"arg1 value is: $1 ....."
echo"arg2 value is: $2 ....."
echo"arg3 value is: $3 ....."

但当我执行script1.sh时,会得到以下结果:

1
2
3
arg1 value is:  .....
arg2 value is:  .....
arg3 value is:  .....

我错过了什么?


通过将第二个脚本与. /home/admin/script2.sh一起源代码,您可以有效地将其包含在第一个脚本中,这样就可以获得$@中原始脚本的命令行参数。如果您真的想用参数调用另一个脚本,那么执行

1
/home/admin/script2.sh"$ARG1""$ARG2""$ARG3"

(确保它是可执行的)。