views:

52

answers:

1

Hi,

I have a fairly simple bash shell scripting problem.

I want to sed a piece of text and then assign the result of the sed to a variable.

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

I have tried the above and it doesn't work. Can anyone point out what I'm doing wrong?

A: 

To collect the output in stdout into a variable, use a command substitution:

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

or

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