以下を試しても問題は発生しません。
$ 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