命令在复制和粘贴时有效,但在 bash 脚本中无效?

命令在复制和粘贴时有效,但在 bash 脚本中无效?

我正在尝试将 Windows 命令传递到 Linux Netcat shell,然后读回输出。

到目前为止我有:

cat <( printf 'ipconfig\n' )| nc -v 137.148.70.243 443

当复制并粘贴到我漂亮的 Linux 终端时,它会从连接的 Windows 机器获取 IP 信息。

但是,当我尝试通过 bash 调用相同的命令时,出现以下错误:

./DumpIP.sh: line n: syntax error near unexpected token `('

是什么赋予了?

编辑

所以如果我尝试:

#!/bin/sh
cat <( printf 'ipconfig\n' )| nc -l

我明白了

./DumpCreds.sh: line 2: syntax error near unexpected token `('
./DumpCreds.sh: line 2: `cat <( printf 'ipconfig\n' )| nc -l'

答案1

您的问题是您正在调用sh而不是bash为 shebang 行中的脚本调用。的语法约定<(command)是通过 调用时不存在的 bashism sh,它模拟 POSIX shell(如果/bin/sh是 的符号链接/bin/bash)。

相关内容