這裏是我的腳本的違規部分:讀:非法-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
修復?解決方法?
這裏是我的腳本的違規部分:讀:非法-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