![](/img/trans.png)
[英]Multiple arguments passed to sqlplus in shell script is not getting accepted
[英]Saving the arguments in different variables passed to a shell script
我需要在两个不同的变量中保存两个命令行参数,并在第三个变量中全部保留。 我正在使用以下代码
while [ $# -ge 2 ] ; do
DirFrom=$1
Old_Ver=`basename $1`
shift
DirTo=$1
shift
pdct_code=$@
shift
done
如果我发送三个以上的参数,则此代码失败。 请建议如何在pdct_code变量中保存第3个等等变量。
当你有两个以上的参数时,你不会进入循环。 你可以像这样颠倒参数限制:
while [ $# -ge 3 ]; do
:
done
或者更好,但只是解析你的论点而不需要循环。 例如:
DirFrom="$1"
Old_Ver=`basename "$1"`
DirTo="$2"
pdct_code="$*"
不需要循环或shift
。 请注意, pdct_code
可能需要是一个数组,以保留传递给脚本的确切参数。
if [ $# -ge 2 ]; then
DirFrom=$1
Old_Ver=$(basename "$1")
DirTo=$2
pdct_code="${@:3}"
# pdct_code=( "${@:3}" )
done
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.