当我尝试以下操作时没有问题:
$ 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