Bash IP IF THEN ELSE声明

我需要从几台机器上运行一个脚本,但是每台机器都需要执行独特的命令。

我以为bash脚本能够做到这一点,但是我对这个部门不太了解。

我需要的代码看起来类似于下面的代码(或将它)。 我知道,这是远远不够完美或function,但它真的只是有助于expression我在找什么。

有人可以帮我用这个脚本?

#/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... 

Solutions Collecting From Web of "Bash IP IF THEN ELSE声明"

使用双括号,空格是重要的:

 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 

注意:在Ubuntu 11.10上,我必须使用cut -c 21-34,根据需要进行修改。

要小心,ifconfig是本地化的,也许这就是为什么山姆必须削减21-34而不是7-17。

使用LANG= ifconfig在英语中都有。

看来, ifconfig有其他的怪癖知道。

(这应该是比回答更多的评论,但我还不能评论。)