2015-01-13 85 views
0

下面的代碼不給任何輸出:分配輸出使用echo命令變量

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

請告訴我在哪裏犯錯。

+2

管道涉及子殼更換管道。那裏的管道也是無用的和不正確的。放下管道。 –

+0

@ user2610請解釋你想達到什麼。 – chaos

+0

@chaos:我想將echo的輸出存儲到一個變量中,然後將該字符串分隔成不同的子字符串。 – user2610

回答

1
a=$(echo `cat time`) 

分配命令的括號$(...)內的輸出到可變$a。 腳本之後,你可以打印變量:

echo $a 

,打印:19991213100942

echo ${a:0:4} 

,打印:1999

您可以通過它的名字$a引用varibale。

+0

我想知道爲什麼命令行不起作用:a = $(echo'cat time')| echo $ a | echo $ {a:0:4}。它不提供任何輸出。 – user2610

+1

你必須使用分號,bot管道:'a = $(echo cat time); echo $ a; echo $ {a:0:4}' – chaos

1

首先,你不需要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}