2010-05-24 90 views
1

我有一個相當簡單的bash shell腳本問題。將複雜的命令結果分配給變量

我想sed一段文字,然後將sed的結果賦值給一個變量。

#!/bin/bash 
MOD_DATE=echo $(date) | sed 's/\ /_/g' 
echo $MOD_DATE // should show date with spaces replaced with underscores. 

我已經嘗試了上述,它不起作用。任何人都可以指出我做錯了什麼?

+0

完美,謝謝。 – radman 2010-05-24 07:03:17

回答

4

收集在標準輸出輸出到一個變量,使用command substitution

MOD_DATE=`echo $(date) | sed 's/\ /_/g'` 
#  ^       ^

MOD_DATE=$(echo $(date) | sed 's/\ /_/g') 
#  ^^       ^
-1

也許這可以幫助:對於

mod_date = "$(date +"%d_%m_%Y")" 
echo "$mod_date" 
+0

這根本不起作用... – bstpierre 2012-10-03 18:42:36

+0

您不能在'='周圍放置空格。 – 2015-05-20 22:10:18