Linux Bash-IP-IF-THEN-ELSE语句
我需要从多台机器上运行一个脚本,但每台机器都需要执行唯一的命令 我原以为bash脚本可以做到这一点,但我对这个部门不是很在行 我需要的代码看起来类似于下面的代码(或者会)。我知道它远不是完美的或功能性的,但它真的只是为了帮助表达我所寻找的 有人能帮我写这个剧本吗Linux Bash-IP-IF-THEN-ELSE语句,linux,bash,unix,scripting,grep,Linux,Bash,Unix,Scripting,Grep,我需要从多台机器上运行一个脚本,但每台机器都需要执行唯一的命令 我原以为bash脚本可以做到这一点,但我对这个部门不是很在行 我需要的代码看起来类似于下面的代码(或者会)。我知道它远不是完美的或功能性的,但它真的只是为了帮助表达我所寻找的 有人能帮我写这个剧本吗 #/bin/bash IP= ifconfig eth0 | grep inet | grep -v inet6 | cut -c 7-17 If [$IP -eq 192.168.32.1] then mkdir IPFolder
#/bin/bash
IP= ifconfig eth0 | grep inet | grep -v inet6 | cut -c 7-17
If [$IP -eq 192.168.32.1]
then mkdir IPFolder-1
more code...
else
if [$IP -eq 192.168.32.2]
then mkdir IPFolder-2
more code...
else
if [$IP -eq 192.168.32.5]
then mkdir IPFolder-5
more code...
使用双括号,空格很重要:
IP=$(ifconfig eth0 | grep inet | grep -v inet6 | cut -c 21-34)
if [[ $IP = 192.168.32.1 ]]; then
mkdir IPFolder-1
elif [[ $IP = 192.168.32.2 ]]; then
mkdir IPFolder-2
fi
注意:在Ubuntu11.10上,我不得不使用cut-c21-34,根据需要进行调整。小心,如果配置是本地化的,也许这就是为什么Sam必须剪切21-34而不是7-17 使用
LANG=ifconfig
在任何地方使用英语
看来我知道了
(与其说是回答,不如说是评论。)我不确定你的问题是什么。每个盒子的执行步骤是否完全不同?它们是具有不同路径、名称等的相同命令吗?您开始编写的脚本是否遇到了一些特定问题?“帮助”如何解决?你想让我们做什么?你的问题是什么?那么,我们应该如何从一个脚本中推断出你的意图呢?你自己承认,这个脚本不能准确地表达你的意图。这可能是一个更简单的获取IP的方法:
ifconfig eth0 | grep-oP'(?谢谢你,山姆!这正是我想要的。更简单(更可靠)获取地址的方法是安装ifdata
并使用ifdata-pa eth0