我的终端的字符编码设置为UTF-8
。我进入终端程序的配置文件首选项/兼容性并单击Reset Compatibility Options to Defaults
。
我使用此终端窗口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 --version
说GNU 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中不支持<<<
吗?
答案 0 :(得分:1)
确定 - 该功能带有2.05 b ,git显示为2002年7月,而2.05 a 是2001年11月。
bash的开发者不会在更改日志中添加日期,但有耐心,您可以在git CHANGES
中看到更改