変数のパイプコマンド出力が機能しません。

変数のパイプコマンド出力が機能しません。

以下を試しても問題ありません。

$ date '+%y%m' | sed 's/.\(.*\)/\1/'
906

しかし、変数に保存しようとすると何も保存されないようです。

$ dd=`date '+%y%m' | sed 's/.\(.*\)/\1/'`
$ echo "$dd"

以下を使用せずに同じ結果が得られることがわかりますsed

$ dd=`date '+%y%m'`
$ echo ${dd: -3}
906

しかし、なぜ機能しないのか疑問に思いますsed

ベストアンサー1

コマンドを変数名として使用しないでください。ddディスク破壊者です。man dd別の変数名または類似の名前を試してみてください。

d=`date '+%y%m' | sed 's/.\(.*\)/\1/'`
echo $d

おそらくこのマニュアルのこの部分bashも役に立ちます。

man bash | sed -n '/^DEFINITIONS/,/^SHELL GRAMMAR/p' | less

おすすめ記事