我試圖分裂與空格分隔兩個單詞的字符串,而這個片斷是不是爲我工作:這個bash腳本爲什麼不分割字符串?
$ cat > test.sh
#/bin/bash
NP="3800 480"
IFS=" "
echo $NP
echo $NP | read VAR1 VAR2
echo "Var1 : $VAR1"
echo "Var2 : $VAR2"
exit 0
並調用它給了我:
$ chmod 755 ./test.sh && ./test.sh
3800 480
Var1 :
Var2 :
我在哪裏希望能看到:
3800 480
Var1 : 3800
Var2 : 480
如何能分裂一個簡單的字符串這樣一個bash腳本?
編輯:(答案我使用) 多虧了jw013提供的鏈接,我能想出這個解決方案,它的工作對於bash 2.04:
$ cat > test.sh
#!/bin/bash
NP="3800 480"
read VAR1 VAR2 << EOF
$NP
EOF
echo $VAR2 $VAR1
$./test.sh
480 3800
感謝您的解釋。點並檢查。 – Jamie
但作爲後續;如何「看到」括號外的變量? – Jamie
那麼,你可以將它們回顯給父級,並用命令替換捕獲它們。但是在管道後面運行的兩個腳本都是原始腳本的幾乎完全相同的副本,那麼爲什麼不把腳本的其餘部分放在parens中呢?我想你也可以調用一個shell程序來執行剩餘的功能。該程序可以定義在父親的外面。 (也就是在子shell外部。) – DigitalRoss