當我嘗試以下操作時沒有問題:
$ 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