小编Mik*_*ike的帖子

将ksh输入数组存储到变量并传递给另一个脚本

我必须修改现有的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时),但无法弄清楚。有人可以帮忙吗?

ksh command-line-arguments

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

command-line-arguments ×1

ksh ×1