脚本 A 调用脚本 B 并且脚本 B 有参数

脚本 A 调用脚本 B 并且脚本 B 有参数

使用 BASH,我有script_a.shwhich 调用script_B.shscript_b.sh 有parms。

我发现这个OP有用,但我的结果不是我所期望的。

$cat script_a.sh 
#!/bin/bash
SCRIPT_PATH="./script_b.sh"
("$SCRIPT_PATH")
exit 0

$ cat script_b.sh 
#!/bin/bash
LICENSE_BEGIN=`date --date="$1 day ago" +%y%m%d`
LICENSE_EXPIR=`date --date="$2 day ago" +%y%m%d`

echo "BEGIN  DATE $LICENSE_BEGIN"
echo "EXIPRE DATE $LICENSE_EXPIR"

exit 0

脚本结果

./script_b.sh  90 3
BEGIN  DATE 181209
EXIPRE DATE 190306

./script_a.sh 90 3
BEGIN  DATE 190308
EXIPRE DATE 190308

我怎样才能script_a 接受 pars 并返回与 相同的结果script_b

答案1

您可以将位置参数列表传递为"$@"

#!/bin/bash
SCRIPT_PATH="./script_b.sh"
"$SCRIPT_PATH" "$@"

(我从调用周围删除了一个额外的子 shell)

来自以下SPECIAL PARAMETERS部分man bash

   @      Expands to the positional parameters, starting from  one.   When
          the  expansion  occurs  within  double  quotes,  each  parameter
          expands to a separate word.  That is, "$@" is equivalent to "$1"
          "$2"  ...

相关内容