Bash意外令牌靠近<<<这里的文件

时间:2017-06-05 23:26:31

标签: bash

我的终端的字符编码设置为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 --versionGNU bash, version 2.05a.0(3)-release (i686-pc-linux-gnu)

我可以断开与该测试机的连接,并在同一终端窗口中手动在我的机器上键入相同的脚本,它运行正常。在我的计算机上,/bin/bash --versionGNU bash, version 4.3.42(1)-release (x86_64-redhat-linux-gnu)

是什么导致测试机器上出现语法错误?在早期版本的Bash中不支持<<<吗?

1 个答案:

答案 0 :(得分:1)

确定 - 该功能带有2.05 b ,git显示为2002年7月,而2.05 a 是2001年11月。

bash的开发者不会在更改日志中添加日期,但有耐心,您可以在git CHANGES

中看到更改