2010-05-24 129 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