标签:脚本 bin shell ifcfg echo 语句 bash ens33
#
!指定要使用的
shell
/bin/sh
执行过程中,若出现命令执行失败,则会立即停止执行
/bin/bash
执行过程中,若出现命令执行失败,仍会继续执行
若不指定解释器,系统会默认使用
/bin/bash
如果使用的语法只有
bash
能解析,就必须加上
#
!
|
静态修改
IP
脚本
#! /bin/bash
cd /etc/sysconfig/network-scripts/
echo "TYPE=Ethernet" > ifcfg-ens33
echo "BOOTPROTO=static" >> ifcfg-ens33
echo "DEFROUTE=yes" >> ifcfg-ens33
echo "IPADDR=192.168.1.100" >> ifcfg-ens33
echo "NETMASK=255.255.255.0" >> ifcfg-ens33
echo "GATEWAY=192.168.1.254" >> ifcfg-ens33
echo "DNS1=218.85.157.99" >> ifcfg-ens33
echo "DNS2=114.114.114.114" >> ifcfg-ens33
echo "NAME=ens33" >> ifcfg-ens33
echo "DEVICE=ens33" >> ifcfg-ens33
echo "ONBOOT=yes" >> ifcfg-ens33
systemctl restart network
|
ifdown ens33 //
关闭
ens33
网卡
ifup ens33 //
打开
ens33
网卡
|
↓
优化
shell
变量
命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。中间不能有空格,可以使用下划线
“_”
。
不能使用标点符号。
不能使用
bash
里的关键字(可用
help
命令查看保留关键字)。
A=123
echo $A
|
read
要与
Linux
交互,通过脚本获取键盘输入的结果
选项:
-n
:限制读取
N
个字符就自动结束读取,如果没有读满
N
个字符就按下回车或遇到换行符,则也会结束读取。
-N
:严格要求读满
N
个字符才自动结束读取,即使中途按下了回车或遇到了换行符也不结束。换行符或回车算
一个字符。
-p
:给出提示符。默认不支持
"\n"
换行,要换行需要特殊处理,见下文示例。例如,
-p "
请输入密码:
"
-r
:禁止反斜线的转义功能。这意味着
"\"
会变成文本的一部分。
-s
:静默模式。输入的内容不会回显在屏幕上。
|
优化后
#! /bin/bash
cd /etc/sysconfig/network-scripts/
read -p "IPADDR=" IP
read -p "GATEWAY=" GATE
echo "TYPE=Ethernet" > ifcfg-ens33
echo "BOOTPROTO=static" >> ifcfg-ens33
echo "DEFROUTE=yes" >> ifcfg-ens33
echo "IPADDR=$IP" >> ifcfg-ens33
echo "NETMASK=255.255.255.0" >> ifcfg-ens33
echo "GATEWAY=$GATE" >> ifcfg-ens33
echo "DNS1=218.85.157.99" >> ifcfg-ens33
echo "DNS2=114.114.114.114" >> ifcfg-ens33
echo "NAME=ens33" >> ifcfg-ens33
echo "DEVICE=ens33" >> ifcfg-ens33
echo "ONBOOT=yes" >> ifcfg-ens33
systemctl restart network
|
if
判断语句
if
判断语句:
if
条件
then
成立 语句
else
不成立 语句
fi
条件 代码
-gt
(
greater than
) 大于
-lt
(
less than
) 小于
-eq
(
equal
) 等于
-ne
(
not equal
) 不等于
-le
(
less than or equal
) 小于等于
-ge
(
greater than or equal
)大于等于
#! /bin/bash
if [ 6 -gt 5 ]
then
echo "yes"
else
echo "no"
fi
|
Linux
两个特殊文件
/dev/null:
黑洞文件(位桶)
/dev/zero:
空字节填充设备
|
存活主机探测
-ping
ping -c2 -i0.5 -w1 IP
地址
-c:
指定发包数
-i:
发包的间隔
-w:
等待时间
`
在前台终端要执行的命令
|
#! /bin/bash
if `ping -c2 -i0.3 -w1 192.168.10.200 > /dev/null`
then
echo "yes"
else
echo "no"
fi
|
循环语句
-for
根据取值列表循环
for
变量
in
取值列表
do
子语句
done
|
优化后
#! /bin/bash
for ip in {1..254}
do
if `ping -c2 -i0.3 -w1 192.168.10.$ip > /dev/null`
then
echo "192.168.10.$ip is alive"
fi
done
|
循环语句
-while
while
:根据条件进行循环
while
条件
do
子语句
done
|
#! /bin/bash
ip=0
while [ $ip -lt 254 ]
do
let ip++
if `ping -c2 -i0.3 -w1 192.168.10.$ip > /dev/null`
then
echo "192.168.10.$ip is alive"
fi
done
|
case
选择语句
case
:根据输入值选择结果
case
变量
in
模式
1
)
子语句
;;
模式
2
)
子语句
;;
*
)
子语句
esac
|
#! /bin/bash
read -p "input i:" i
case $i in
1)
echo 1
;;
2)
echo 2
;;
3)
echo 3
;;
*)
echo none
esac
|
./case.sh 1
| |
| |
$0 $1
$0
、
$1
是
Linux
系统中的内置变量
通过执行脚本的同时在
$1
的位置进行变量值的输入
|
#! /bin/bash
case $1 in
1)
echo 1
;;
2)
echo 2
;;
3)
echo 3
;;
*)
echo none
esac
|
标签:脚本,
bin,
shell,
ifcfg,
echo,
语句,
bash,
ens33
From: https://blog.csdn.net/m0_73932844/article/details/144643623