检查参数计数并将输入参数值调整为默认值

时间:2015-11-05 11:59:41

标签: bash

我有一个命令行程序,我想检查参数是2还是3.

if [ $# -eq 2 ] || [$# -eq 3]; then
....
fi

这是否是有效的比较?

如果输入参数为2,那么我需要强制将$ 2设置为定义值,将$ 3设置为$ 2作为用户输入的$ 2。

if [$# -eq 2]; then
    $# = 3
    $3 = $2
    $2 = "c1"
fi

这是一项有效的作业吗?

1 个答案:

答案 0 :(得分:1)

使用set命令显式设置位置参数。请注意$#会自动更新;你不需要(也不能)明确地设置它。

if [ $# -eq 2 ]; then
    set -- "$1" fixed-value "$2"
fi