读:非法-d选项
这里是我的脚本的违规部分:读:非法-d选项
read -d '' TEXT <<'EOF'
Some Multiline
text that
I would like
in
a
var
EOF
echo "$TEXT" > ~/some/file.txt
和错误:
read: 175: Illegal option -d
我使用这个阅读-d所有的地方,它工作正常。不知道为什么现在不开心。我在Ubuntu上运行脚本10.10
修复?解决方法?
如果运行sh
,然后尝试该命令,您可以:
read: 1: Illegal option -d
如果你做到这一点,同时仍然在bash
,它工作正常。
因此,我推断您的脚本是而不是在bash
下运行。
请确保您的脚本开始行:
#!/usr/bin/env bash
(或同等学历),以便正确的shell运行该脚本。
另外,如果你不能做到这一点(因为脚本是不是bash
一个),要知道,-d
是bash
功能,也有可能在其他炮弹可用。在这种情况下,你需要找到另一种方式。
哈!这么小,很容易错过。根据你的回答,我需要'chmod 775 thefile.sh; 。/ thefile.sh'因为'sh thefile.sh'是罪魁祸首。另外,我使用没有probs的shebang'#!/ bin/bash'。 +1 – Jacksonkr 2017-03-09 17:30:22
的-d
选项read
是一种功能独特的bash,而不是POSIX标准的一部分(其仅指定-r
和-p
选项read
)。当你在Ubuntu上运行你的脚本sh
时,它会用破折号运行,这是一个POSIX shell,而不是bash。如果你想让脚本在bash下运行,那么你应该使用bash运行它,或者给它一个012bshebang。否则,它应该在任何POSIX sh下运行。
我假设你在Ubuntu上使用'bash' shell。如果是这样,'help read'是否显示'-d'选项? – SiegeX 2011-02-23 23:27:08