#echo $LINE |cut -f"${arg}" -d' '
pom=$LINE |cut -f"${arg}" -d' '
我有這條兩條線。首先是工作,但第二個沒有。我想變量得到這個命令的值因爲我想使用這個值就像字符串。帶命令值的Bash設置變量
#echo $LINE |cut -f"${arg}" -d' '
pom=$LINE |cut -f"${arg}" -d' '
我有這條兩條線。首先是工作,但第二個沒有。我想變量得到這個命令的值因爲我想使用這個值就像字符串。帶命令值的Bash設置變量
您需要運行第一行,然後將返回的值賦給變量。爲此,您可以反引號裏面的命令,就像這樣:
pom=`echo $LINE |cut -f"${arg}" -d' '`
第二行不工作的原因,是因爲什麼在$LINE
很可能不是一個有效的命令,和管道需要從命令,其輸出這就是爲什麼您需要echo
才能輸出$LINE
的內容。
如果在LINE沒有空字段(即沒有連續的空格),你也可以使用純慶典:
ITEMS=($LINE)
pom=${ITEMS[arg]}
注意$ arg是基於在這種情況下爲零,所以你可能需要使用[ARG-1]。
這種代碼氣餒:
pom=`echo $LINE |cut -f"${arg}" -d' '`
贊成:。
pom=$(echo "$LINE" | cut -f"${arg}" -d' ')
反引號() is used in the old-style command substitution, e.g. foo=
command`的富= $(命令)語法建議,而不是反斜槓處理在$()內不會令人驚訝,並且$()更容易嵌套。請參閱http://mywiki.wooledge.org/BashFAQ/082
thx :)這是結束我的腳本的最後一件事:) –