gpt4 book ai didi

linux - Bash 脚本命令未执行

转载 作者:太空宇宙 更新时间:2023-11-04 05:21:34 25 4
gpt4 key购买 nike

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

#!/bin/bash

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

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

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

...语法正确,并且如果手动执行即可工作。

我不了解 Bash,所以我正在努力调试这个基本脚本。我看到一些场景中的命令是裸露的,就像我的命令一样,还有一些场景被包裹在 $() 中(带引号和不带引号)。我还尝试使用反引号并引用命令的各个部分。通过 wall 传输的 echo 仅用于调试。

我在 Bash script commands not working in cron 找到了一个基本相同的帖子。但我的脚本没有从 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 脚本。问题不在于脚本,而在于权限。我需要授予额外的 sudo 访问权限才能在我的 sudoers 中运行 iptables。已修复。

关于linux - Bash 脚本命令未执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41385275/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com