BASHを使用してscript_a.sh
任意の電話script_B.sh
をかけてscript_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" "$@"
(通話の周りから追加のサブシェルを削除しました)
次の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" ...