Bash
無法在 FreeBsd 中重定向 IO 輸出
我有這個:
$ echo $SHELL /bin/sh $ uname -a FreeBSD 11.0-RELEASE-p8
這有效:
sudo bash my_script.sh some_arg
但這不是:
sudo bash my_script.sh some_arg >& /dev/null
錯誤:
-sh: Syntax error: Bad fd number
在使用預設 bash 作為 shell 的 Linux 中,這可以正常工作。
如何解決?
在腳本中我有這個:
#!/usr/local/bin/bash # other stuff
bash
確實支持這一點,但是您明確聲明您目前的外殼不是bash
,而是sh
,這是一個不同的外殼。
bash
確實支持>&
,但不支持/bin/sh
(至少不支持重定向到文件)。您的命令行在傳遞給and
/bin/sh
之前被解釋。sudo``bash
我無法對此進行測試
bash
(但它適用於其他 shell) - 您可以嘗試使用-c
帶引號的字元串的選項:sudo bash -c "my_script.sh some_arg >& /dev/null"