传递参数并检查它们的长度

时间:2015-10-28 14:19:02

标签: shell unix

我正在学习shell,我想了解如何使用命令行(不使用脚本)和检查参数长度将参数传递给变量。例如,我想在命令行中键入10 20并想要在它们之间输出数字,我试过

    for((i=$1;i<$2;i++))do echo "$1"; done // or
    a=$1
    b=$2
    for((i=$a;i<$b;i++))do echo "$1"; done

但没有任何作用,我也想检查参数的数量,但无法找到并获取它,因为我提到我想使用命令行不使用脚本并执行它们

1 个答案:

答案 0 :(得分:0)

在原始提示下,通常不会设置位置参数($1$2等)。你可以设置它们,但这很奇怪。对于您的情况,您可以这样做:

$ set 10 20  # set $1 and $2
$ i=$1
$ while test $i -lt $2; do echo $((i++)); done
10
11
12
13
14
15
16
17
18
19

$ foo() { i=${1:?}; while test $i -lt ${2:?}; do echo $((i++)); done; }
$ foo 10 20
10
11
12
13
14
15
16
17
18
19