コマンドの出力をループ内の同じコマンドへの入力として使用する

コマンドの出力をループ内の同じコマンドへの入力として使用する

そのため、基本的にコマンドを実行するbash /シェルスクリプト用のテンプレートを見つけようとします。入力「X」を使用して「command1」と呼び、それ自体でcommand1の出力を使用します...しかし、ループ内で。

実際のケースは次のとおりです。

echo "hello" | cut -c2-

これにより、入力文字列と出力の先頭から最初の文字が削除されます。

ello

上記は、上記のテンプレートを説明するための例です。この例では、どのように使用しますか?コマンド1出力:

echo "hello" | cut -c2-

ただし、入力としてループは無限に繰り返されるか、バイト/文字が1つだけ残るまで繰り返されます。

これにより、出力をコピー/貼り付けて前の入力に置き換える必要がなくなります。

echo "ello" | cut -c2-

または、複数のパイプを使用する必要があるため、遅すぎるか非効率的です。

より簡単な説明

手動操作を使用すると、これは私(ユーザー)が例として提供したコマンドの出力(または前述の疑似コード)をコピーして貼り付け、同じコマンドへの入力として使用し、残るまで同じ操作を繰り返すことを置き換えます。 「A」バイトまたは文字。

ベストアンサー1

私が正しく理解した場合は、次のようなものを探しています。

$ var=hello
$ while [ -n "$var" ]; do 
    printf -- "Var is now '%s'\n" "$var"
    var=$(printf -- '%s\n' "$var" | cut -c2-); 
done
Var is now 'hello'
Var is now 'ello'
Var is now 'llo'
Var is now 'lo'
Var is now 'o'

おすすめ記事