我正在開發一個使用ash shell(而不是bash)的小腳本。shell腳本:如何從變量中只讀取部分文本
現在我有具有以下組成的變量:
VARIABLE = "number string status"
其中數可以是任意數目(實際上是1和18之間,但在未來的數字可能更高)的字符串是一個名稱和狀態是或打開或關閉 名稱通常只是小寫字母。
現在我的問題是隻讀取變量中的字符串內容,刪除數字和狀態。
我該如何獲得?
我正在開發一個使用ash shell(而不是bash)的小腳本。shell腳本:如何從變量中只讀取部分文本
現在我有具有以下組成的變量:
VARIABLE = "number string status"
其中數可以是任意數目(實際上是1和18之間,但在未來的數字可能更高)的字符串是一個名稱和狀態是或打開或關閉 名稱通常只是小寫字母。
現在我的問題是隻讀取變量中的字符串內容,刪除數字和狀態。
我該如何獲得?
兩種方式;一個是利用$IFS
和使用while循環 - 這會爲單行工作很愉快 - 如:
echo "Part1 Part2 Part3" | while read a b c
do
echo $a
done
或者,使用cut
如下:
a=`echo $var | cut -d' ' -f2`
echo $a
如何使用cut
?
name=$(echo "$variable" | cut -d " " -f 2)
UPDATE
顯然,灰不明白$(...)
。希望你可以這樣做:
name=`echo "$variable" | cut -d " " -f 2`
如何:
name=$(echo "$variable" | awk '{print $2}')
#!/bin/sh
myvar="word1 word2 word3 wordX"
set -- $myvar
echo ${15} # outputs word 15
$(...)不知道灰。他們需要使用反引號。 – 2012-01-13 23:19:08
你確定@ChrisJ?我檢查了[wikipedia](http://en.wikipedia.org/wiki/Comparison_of_computer_shells#Inter-process_communication),它確實聲明'ash'支持'命令替換'。 – 2012-01-14 02:20:25
克里斯,與$()和$「..」 – Ivan 2012-01-14 10:29:13