解析する必要があるダッシュスクリプトがあります。これは、「」で区切られた2つの部分を含む文字列$1
です。たとえば、$Xと$Yに保存したいと思います。:
foo:123
foo
123
私は次のことができると思いますread
。
$ echo "foo:123" | tr ':' ' ' | read X Y
ただし、これは機能しません(エラーは発生しません)。
$ echo $X
空行を出力として提供します。
私のread
設定がうまくいかないのはなぜですか?目標を達成するにはどうすればよいですか?(すべてのソリューション、読み取りを使用する必要はありません)
ベストアンサー1
存在するスプリント、各コマンド管路 サブシェルで実行(zsh
そしてAT&T ksh
、パイプラインの一番右のコマンドは)、したがってコマンドが完了すると、変数X
とY
もはや存在しません。
簡単に言えば、使えますパラメータ拡張、努力する:
$ set -- foo:123
$ X=${1%:*}
$ Y=${1#*:}
この例は対話型セッションに関するものです。
スクリプトには必要ありませんset -- foo:123
。