shell出現syntax error near unexpected token `<' 解決方法


最新在看一個shell資料時,按照教材,卻出現如下錯誤,不能運行

如下,簡單的腳本:

#!/bin/bash
cat |while read line
do
  echo $line
done < <(data.txt|awk '{print $0}')

運行時,卻出現如下錯誤

[root@localhost shellcookbook]# sh while_test.sh 
while_test.sh: line 5: syntax error near unexpected token `<'
while_test.sh: line 5: `done < <(data.txt|awk '{print $0}')'

然后在單行運行時,卻沒有錯誤

[root@localhost shellcookbook]# while read line;do echo $line;done < <(cat data.txt|awk '{print $1}')
1
2
3
4

 

在網上查看后,確認無腳步錯誤,無dos文件錯誤。還是沒有好的解決方法。通過多方求證。原來是bash 3.0后,shell中加入了新的符號"<<<" 可以獲取子任務

現將腳本更改如下,成功運行:

#!/bin/bash
cat |while read line
do
  echo $line
done <<< `cat data.txt|awk '{print $0}'`

成功運行

[root@localhost shellcookbook]# sh while_test.sh 
1 2 3 4

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM