2017-06-05 79 views
0

我的終端的字符編碼設置爲UTF-8。我進入終端程序的配置文件首選項/兼容性,然後單擊Reset Compatibility Options to DefaultsBash意外標記附近<<<這裏文檔

我使用這個終端窗口ssh'd到另一臺機器。

我運行了vi,並在上用手鍵入了以下腳本(以避免意外隱藏的特殊字符)。然後我跑,並得到syntax error near unexpected token <<<

#!/bin/bash 

cd "$1" 

if [ $? -ne 0 ]; then 
    printf 'cd fail' 
    exit 1 
fi 

while read name 
do 
    printf 'item: [%s]\n' "$name" 
done <<< "$(stat -t ./* | awk -F' ' '{print $13 " " $1}' | sort -r | awk -F' ' '{print $2}')" 

本試驗機具有/bin/bash ...也/bin/sh/bin/bash的鏈接。 /bin/bash --versionGNU bash, version 2.05a.0(3)-release (i686-pc-linux-gnu)

我可以從該測試機斷開連接,並在同一個終端窗口在我的機器上手工輸入相同的腳本,它運行良好。在我的機器上,/bin/bash --version表示GNU bash, version 4.3.42(1)-release (x86_64-redhat-linux-gnu)

什麼原因導致測試機器上的語法錯誤?在早期版本的Bash中不支持<<<

回答

1

肯定的 - 該功能,將與2.05 b這混帳顯示爲2002年7月,而2.05 一個是2001年11月

bash的開發商不把在更改日誌的日期,但有一些耐心你可以看到git CHANGES的變化