Shell是一个用c语言编写的程序,它是用户使用Linux的桥梁. Shell 既是命令语言,又是一种程序设计语言.
Shell脚本(shell script),是一种为Shell编写的脚本程序。业界所说的Shell通常指的是Shell脚本. Shell 与Shell脚本是两个不同的概念.
Linux中的shell有很多种类,常用的几种:
Bash(Bourne Again Shell)
由于易用和免费,在日常工作中被
广泛使用。同时,Bash也是大多数Linux系统默认的Shell.
创建一个first.sh
文件,Shell脚本文件以.sh结尾
,然后开始编辑文件:
#!/bin/bash
echo "hello world"
编写完之后使用ll
命令查看文件的权限:
只
允许读和写,不能执行,所以要为它加上可执行权限:
chmod +x first.sh
看到文件变成绿色以后,使用./firsh.sh
执行:
定义变量
#!/bin/bash
echo "hello world"
greet="hello program"
echo $greet
=
号的两边不能有空格.$
符号.if条件判断
#!/bin/bash
num=1
if [$num -eq 0]; then
echo "num is 0"
elif [$num -eq 1]; then
echo "num is 1"
else
echo "num is not 0 and 1"
fi
for循环
假设要打印/opt/module
目录下面的所有文件:
#!/bin/bash
for file in $(ls /opt/module/); do
echo $file
done
从1加到100:
#!/bin/bash
sum=0
for i in {1..100}; do
let sum+=i;
done
echo $sum
检测局域网内机器的工作状态:
假设现在处于的网段是192.168.199
,要求打印出当前网段下所有机器的工作状态.
#!/bin/bash
for i in {1..254}; do
ping -c 2 -i 0.5 192.168.199.$i &>/dev/null
if [$? -eq 0]; then
echo "192.168.199.$i is up"
else
echo "192.168.199.$i is down"
fi
done
ping -c [count]
表示ping的次数.ping -i [time]
表示每次ping的时间间隔./dev/null
表示把打印的一些无用信息过滤掉.$?
表示上一行指令的执行结果.后面使用到再进行追加.