Bash 脚本命令未执行

Bash Script Command Not Executing

我需要以下 Bash v4.1.2 脚本的帮助。

#!/bin/bash

IP=
IPTABLES=/sbin/iptables
$IPTABLES -I INPUT -s $IP -j DROP
echo $IPTABLES -I INPUT -s $IP -j DROP |wall

变量 IPIPTABLES 填充在 echo 中,但上面的行未执行。回声输出...

/sbin/iptables -I INPUT -s 1.2.3.4 -j DROP

...这在语法上是正确的,如果手动执行则可以工作。

我不知道 Bash 所以我正在努力调试这个基本脚本。我看到一些情况下,我的命令是裸露的,有些是用 $() 包裹的(带引号和不带引号)。我也尝试过使用反引号并引用命令的各个部分。通过 wall 管道传输的 echo 仅用于调试。

我在 Bash script commands not working in cron 找到了一个基本相同的 post。我的脚本不是来自 cron 的 运行。

=== 编辑 ===
添加@Barmar

[root@server tmp]# bash -x /bin/netfilter-drop.sh 
+ IP=1.2.3.4
+ IPTABLES=/sbin/iptables
+ /sbin/iptables -I INPUT -s 1.2.3.4 -j DROP
+ wall
+ echo /sbin/iptables -I INPUT -s 1.2.3.4 -j DROP
[root@server tmp]# 
Broadcast message from root@server (Thu Dec 29 12:46:44 2016):

/sbin/iptables -I INPUT -s 1.2.3.4 -j DROP
^C
[root@server tmp]#

我最初只允许 sudo 访问 运行 发布的 Bash 脚本。问题不在于脚本,而在于权限。我需要在我的 sudoers 中为 运行 iptables 提供额外的 sudo 访问权限。固定。