次の2つの文字列フィールド(スペースで区切られた)を含むファイル(テキスト)があります。
1.2.3 version1
次のようにsetコマンドを使用すると、最初のフィールドは$ 1にあり、2番目のフィールドは$ 2にあります。このコマンドの機能を説明できる人はいますか?特に<どうですか?これは入力リダイレクトですか?
set -- $(<text)
ベストアンサー1
このコマンドは、2つの特別なトリックを組み合わせます。
置く -
通常、set
シェルオプションの設定に使用されます(シェルのマニュアルページを参照)。特別な場合はですset --
。位置パラメータを設定するために使用されます。残念ながら、それは何かを忘れていましたが、他の方法ではうまくいかない問題についての記事を読んだことがあります。
$(<ファイル)
$(command)
コマンドの置換です。シェルはstdoutから出力を収集し、$(command)
コマンドラインを実行するとそれを置き換えます。ファイルの内容が必要な場合は、次のようにできます。$(cat file)
.$(< file)
短いバージョンで不要なプロセスを保存します(cat
)。