linux - noob - 语法错误 : redirection unexpected

标签 linux bash

<分区>

这里是新手 shell 脚本编写者。

我在 bash shell 中。我自己运行以下脚本是可行的,但当我使用 sudo 时却不行。您可能会说,touch 错误只是为了确保将某些内容写入日志文件。

dave@pi1:~ $ ./test.sh
touch: cannot touch '/asdf/asdf/asdf': No such file or directory  <--- As expected
dave@pi1:~ $ sudo ./test.sh
./test.sh: 2: ./test.sh: Syntax error: redirection unexpected  <--- why this not work?
dave@pi1:~ $

脚本...

LOG_FILE=/var/log/usbhook
exec > >(tee -a ${LOG_FILE} )
exec 2> >(tee -a ${LOG_FILE} >&2)

touch /asdf/asdf/asdf

目的是在我插入 USB 内存棒时触发脚本,因此我假设它在使用 sudo 运行时应该可以工作。

编辑

这与评论中链接的其他问题不同。这与不能在 shell 中使用的运算符有关。

最佳答案

Bash: Syntax error: redirection unexpected

^类似,可能会回答你的问题。从该线程中接受的答案:

“Ubuntu 中的默认系统 shell 是 dash,而不是 bash,所以如果你有 #!/bin/sh 那么你的脚本将使用与你预期不同的 shell。Dash 没有 <<< 重定向运算符。 "

关于linux - noob - 语法错误 : redirection unexpected,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57526831/

相关文章:

linux - crontab 不通过 ftp 脚本上传文件

regex - 使用 sed 将空 CSV 值替换为 NULL

linux - 替换前 3 个字符范围内的所有整数

python - 从 Linux 中打开的窗口获取内容

java - 在 install4j 应用程序中强制更新

python - 让 bash 脚本将多个程序作为单独的进程执行

python - 在linux中自动重新启动崩溃的进程(python)脚本

c++ - 使用 RPC (linux) 在 C++ 中开发分布式应用程序

BASH dirname basename 空格问题

bash - macos 下 bash 中连接变量时避免使用空格