使用 echo 的输出编号作为 seq 的输入
Use output number of echo as input for seq
作为输入,我得到 echo [number]
。例如:echo 5
。
我需要获取从 1 到 [number] 的数字序列作为输出。
所以如果我得到 5 作为输入,我需要:1 2 3 4 5(全部在单独的一行上)。
我知道我可以使用 seq 5
得到 1 2 3 4 5 但问题是我需要使用管道。
所以最后的命令应该是这样的:echo 5 | seq [number]
它应该给出 1 2 3 4 5 作为输出。我的问题是我不知道如何从 echo
获取输出作为我对 seq
.
的输入
您可以使用 echo
命令的输出,如下所示:
seq $(echo 5)
如果你正在处理一个变量,你可以这样做:
var=5
echo $var
seq $var
假设 echo 5
是未知程序的示例替换,该程序会将单个数字写入标准输出并且此输出应用作 seq
的参数,您可以使用脚本像这样:
文件seqstdin
:
#!/bin/sh
read num
seq "$num"
你可以像这样使用它
echo 5 | ./seqstdin
获取输出
1
2
3
4
5
您也可以将所有内容写在一行中,例如
echo '5'| { read num; seq "$num"; }
备注:
此代码不包含任何错误处理。它使用第一行输入作为 seq
的参数。如果 seq
不接受这个值,它将打印一条错误消息。
我没有使用 read -r
或 IFS=
,因为我希望输入的数字适合 seq
。使用其他输入,您可能会得到意想不到的结果。
作为输入,我得到 echo [number]
。例如:echo 5
。
我需要获取从 1 到 [number] 的数字序列作为输出。
所以如果我得到 5 作为输入,我需要:1 2 3 4 5(全部在单独的一行上)。
我知道我可以使用 seq 5
得到 1 2 3 4 5 但问题是我需要使用管道。
所以最后的命令应该是这样的:echo 5 | seq [number]
它应该给出 1 2 3 4 5 作为输出。我的问题是我不知道如何从 echo
获取输出作为我对 seq
.
您可以使用 echo
命令的输出,如下所示:
seq $(echo 5)
如果你正在处理一个变量,你可以这样做:
var=5
echo $var
seq $var
假设 echo 5
是未知程序的示例替换,该程序会将单个数字写入标准输出并且此输出应用作 seq
的参数,您可以使用脚本像这样:
文件seqstdin
:
#!/bin/sh
read num
seq "$num"
你可以像这样使用它
echo 5 | ./seqstdin
获取输出
1
2
3
4
5
您也可以将所有内容写在一行中,例如
echo '5'| { read num; seq "$num"; }
备注:
此代码不包含任何错误处理。它使用第一行输入作为 seq
的参数。如果 seq
不接受这个值,它将打印一条错误消息。
我没有使用 read -r
或 IFS=
,因为我希望输入的数字适合 seq
。使用其他输入,您可能会得到意想不到的结果。