Присвоение вывода переменной с помощью команды echo

Приведенный ниже код не дает никакого вывода:

$echo `cat time`
19991213100942
$a=$(echo `cat time`) | echo $a | echo ${a:0:4}

Пожалуйста, расскажите, где я делаю ошибку.

2 ответа

a=$(echo `cat time`)

назначает вывод команды в скобках $(...) к переменной $a, Позже в скрипте вы можете напечатать переменную:

echo $a

Это печатает: 19991213100942

echo ${a:0:4}

Это печатает: 1999

Вы можете ссылаться на варибале по названию $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}
Другие вопросы по тегам