Код ниже не дает никаких выходных данных:назначение вывода переменной с помощью эхо-команды
$echo `cat time`
19991213100942
$a=$(echo `cat time`) | echo $a | echo ${a:0:4}
Пожалуйста скажите, где я делаю ошибку.
Код ниже не дает никаких выходных данных:назначение вывода переменной с помощью эхо-команды
$echo `cat time`
19991213100942
$a=$(echo `cat time`) | echo $a | echo ${a:0:4}
Пожалуйста скажите, где я делаю ошибку.
a=$(echo `cat time`)
присваивает вывод команды внутри скобок $(...)
к переменной $a
. Позже в сценарии, вы можете напечатать переменную:
echo $a
Это печатает: 19991213100942
echo ${a:0:4}
, который печатает: 1999
Вы можете ссылаться на varibale по имени $a
.
Во-первых, вам не нужно echo
выход cat time
: только cat time
.
второй, как @Etan говорит (вид), заменить трубы с запятой или новой строкой
a=$(< time) # a bash builtin, equivalent to but faster than: a=$(cat time)
echo $a
echo ${a:0:4}
Трубы включает суб-оболочки. Труба также бесполезна и неправильна. Бросьте трубку. –
@ user2610, пожалуйста, объясните, чего вы хотите достичь. – chaos
@chaos: Я хочу сохранить вывод эха в переменную и затем разделить эту строку на разные подстроки. – user2610