Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 传递参数并检查其长度_Shell_Unix - Fatal编程技术网

Shell 传递参数并检查其长度

Shell 传递参数并检查其长度,shell,unix,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 for((i=$1;i在原始提示下,位置参数($1,$2等)通常不设置。您可以设置它们,但这很奇怪。对于

我正在学习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

for((i=$1;i在原始提示下,位置参数(
$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

您打算如何直接在命令行上获取“参数”?在这里/在您的交互提示下,您希望
$1
$2
包含什么?
$ 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