繁体   English   中英

将参数保存在传递给shell脚本的不同变量中

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM