将复杂命令的结果赋值给变量

3

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

我想要使用sed命令处理一段文本,并将处理结果赋值给一个变量。

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

我已尝试上述方法,但它没有起作用。请问有人能指出我做错了什么吗?
2个回答

5

要将stdout输出收集到变量中,请使用命令替换

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

或者

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

-1

也许这可以帮助:

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

你不能在 = 周围放空格。 - Charles Duffy
发布前最好测试一下 :) - Daniel Cambría

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接