将复杂的命令结果分配给变量

时间:2010-05-24 06:33:37

标签: bash shell sed

我有一个相当简单的bash shell脚本问题。

我想sed一段文字,然后将sed的结果分配给变量。

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

我已尝试过上述内容并且无效。谁能指出我做错了什么?

2 个答案:

答案 0 :(得分:5)

要将stdout中的输出收集到变量中,请使用command substitution

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

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

答案 1 :(得分:-1)

也许这会有所帮助:

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