两个不同的Shell脚本之间如何访问传递的参数取决于它们是如何调用的。如果一个Shell脚本1调用另一个Shell脚本2并且想要将参数传递给被调用的脚本2,可以使用以下方法:
方法1:通过位置参数传递参数
这是一种常见的方法,其中一个脚本将参数作为位置参数传递给另一个脚本。位置参数由 $1
、$2
、$3
等特殊变量来表示,它们分别对应于第一个、第二个、第三个传递的参数,以此类推。
假设有两个脚本:script1.sh
和 script2.sh
,并且要从 script1.sh
传递参数给 script2.sh
。可以这样做:
script1.sh:
#!/bin/bash
arg1=1
arg2=2
arg3=3
# 调用 script2.sh 并传递参数
./script2.sh $arg1 $arg2 $arg3
script2.sh:
#!/bin/bash
# 在 script2.sh 中访问传递的参数
echo "First argument: $1"
echo "Second argument: $2"
echo "Third argument: $3"
通过这种方法,script1.sh
调用了 script2.sh
并传递了三个参数。
方法2:使用环境变量传递参数
另一种方法是使用环境变量来传递参数。这对于在不同的Shell脚本之间共享数据非常有用。在这种方法中,一个脚本可以设置环境变量,另一个脚本可以读取这些环境变量。
script1.sh:
#!/bin/bash
# 设置环境变量
export MY_PARAM1="arg1"
export MY_PARAM2="arg2"
export MY_PARAM3="arg3"
# 调用 script2.sh
./script2.sh
script2.sh:
#!/bin/bash
# 在 script2.sh 中读取环境变量
echo "First argument: $MY_PARAM1"
echo "Second argument: $MY_PARAM2"
echo "Third argument: $MY_PARAM3"
在这个例子中,script1.sh
设置了三个环境变量,然后 script2.sh
读取这些环境变量来获取参数值。
选择哪种方法取决于您的需求。通常情况下,通过位置参数传递参数是更常见的方法,因为它更直接并且不需要额外的环境变量设置。但在某些情况下,使用环境变量可以更方便地共享数据。