所以作為輸入,我得到echo [number]. 例如:echo 5。我需要獲得從 1 到 [number] 的數字序列作為輸出。所以如果我得到 5 作為輸入,我需要: 1 2 3 4 5 (都在一個單獨的行上)。
我知道我可以使用seq 51 2 3 4 5 但問題是我需要使用管道。
所以最后的命令應該是這樣的:echo 5 | seq [number]它應該給出 1 2 3 4 5 作為輸出。我的問題是我不知道如何將輸出echo作為seq.
uj5u.com熱心網友回復:
您可以使用該echo命令的輸出,如下所示:
seq $(echo 5)
如果您正在處理一個變數,您可能會這樣做:
var=5
echo $var
seq $var
uj5u.com熱心網友回復:
假設這echo 5是一個未知程式的示例替換,它將向 stdout 寫入單個數字,并且此輸出應用作 的引數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. 使用其他輸入,您可能會得到意想不到的結果。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/317368.html
