Shell-Script
如何附加命令
我不記得如何將命令附加到 shell 腳本。我搜尋了append、add、concat等,但沒有成功。
基本上我有
belly = tail -n +"$HEAD" "$1" | head -n $((TAIL-HEAD+1)) if [ -z "${NUMBER+x}" ]; then # check if NUMBER exists tail -n +"$HEAD" "$1" | head -n $((TAIL-HEAD+1)) else tail -n +"$HEAD" "$1" | head -n $((TAIL-HEAD+1)) | cat -n fi
它工作正常,但我不喜歡重複的邏輯。我知道我可以使用函式或 eval,但有沒有更簡單的方法來做到這一點?在我的腦海中,我有這樣的事情:
belly = tail -n +$HEAD $1 | head -n $((TAIL-HEAD+1)) if [ -z "${NUMBER+x}" ]; then # check if NUMBER exists belly else belly | cat -n fi
但它不起作用。我錯過了什麼?
實際上,這可能已經在這裡得到了回答:條件管道
該答案採用外殼
if/then/else
機制並使用它將邏輯嵌入管道中。你也可以用&&
操作符來做到這一點,但它讀起來不太乾淨,所以我更喜歡if
.基本上在你的情況下,這
tail
條線是這樣的(請注意-z
to的變化-n
):tail -n +"$HEAD" "$1" | head -n $((TAIL-HEAD+1)) | if [ -n "${NUMBER+x}" ]; then cat -n; else cat; fi
(這可能有一些錯誤,我不太熱衷於 Linux shell 程式。但你明白了。)