コマンドを追加する方法

コマンドを追加する方法

シェルスクリプトにコマンドを添付する方法を覚えていません。私は検索しました追加次へ追加つながる、そして多くは成功しませんでした。

基本的に私

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

うまくいきますが、反復的なロジックが好きではありません。関数や試用版を使用できることを知っていますが、これを行うより簡単な方法はありますか?私の心の中には次のようなものがあります。

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

しかし、これはうまくいきません。私は何を見逃していますか?

ベストアンサー1

実際、この質問はここで回答されている可能性があります。条件付きパイプライン

この回答は、シェルif/then/elseメカニズムを使用してロジックを含めるために使用します。~へ管路。演算子を使用してこれを行うこともできますが、明確には&&読まないので、これを好みますif

デフォルトでは、あなたのtail行は次のようになります(-z変更も参照してください-n)。

tail -n +"$HEAD" "$1" |
head -n $((TAIL-HEAD+1)) |
if [ -n "${NUMBER+x}" ]; then cat -n; else cat; fi

(ここにはいくつかのバグがあるかもしれません。私はLinuxシェルプログラミングがあまり好きではありません。しかし、あなたは理解するでしょう。)

おすすめ記事