2010-05-24 2 views
1

У меня довольно простая проблема с сценарием оболочки bash.Назначить результат командной команды переменной

Я хочу, чтобы sed фрагмент текста, а затем присвойте результат sed переменной.

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

Я пробовал выше, и он не работает. Может ли кто-нибудь указать, что я делаю неправильно?

+0

идеально подходит, спасибо за это. – radman

ответ

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

+0

Вы не можете поместить пробелы вокруг '='. –

Смежные вопросы