我必须修改现有的ksh脚本,该脚本使用'shift'查看命令行参数,因此清空$ @,但是现在想将原始参数传递给第二个脚本。
在主线情况下,我可以通过将$ @对应到变量并将其传递给第二个脚本来实现,但是我无法使它用于带引号的命令行参数。
如果我有一个名为“打印机”的脚本,如下所示:
#!/bin/ksh
INPUT=$@
echo "Printing args"
until [[ $# -eq 0 ]];do
echo $1
shift
done
./printer2 $INPUT
Run Code Online (Sandbox Code Playgroud)
和printer2如下所示:
#!/bin/ksh
echo "Printing second args"
until [[ $# -eq 0 ]];do
echo $1
shift
done
Run Code Online (Sandbox Code Playgroud)
我想要的输出
./printer first second "third forth"
Run Code Online (Sandbox Code Playgroud)
成为 :
Printing args
first
second
third forth
Printing second args
first
second
third forth
Run Code Online (Sandbox Code Playgroud)
我已经尝试过各种围绕变量的引号组合(在$ INPUT的赋值中,以及将其传递给printer2时),但无法弄清楚。有人可以帮忙吗?