Linux学习笔记5

day5
1.Shell脚本(.sh后缀)
①#! /bin/bash(脚本声明)
②#xxxxxx(脚本注释)
③脚本命令
2.Shell功能
①接收用户的参数
$0–当前脚本名称
$#–共有几个参数
$*–所有位置的参数值
$?–上一次命令的执行返回值
$N–接收到的第N和参数值
②判断用户的参数
条件测试语句执行格式:[ 条件表达式 ]
分为文件测试语句、逻辑测试语句、整数值比较语句、字符串比较语句四种

a.文件测试所用的参数

运算符 作用
-d 测试文件是否为目录类型
-e 测试文件是否存在
-f 判断是否为一般文件
-r 测试当前用户是否有权限读取
-w 测试当前用户是否有权限写入
-x 测试当前用户是否有权限执行

b.
逻辑“与”–&&,表示当前面的命令执行成功后才会执行它后面的命令;
逻辑“或”–||,表示当前面的命令执行失败后才会执行它后面的命令;
逻辑“非”–!,表示把条件测试中的判断结果取相反值;
eg:[ ! $USER = root ] && echo “user” || echo “root”

c.可用的整数比较运算符

运算符 作用
-eq(equal) 是否等于
-ne 是否不等于
-gt(great than) 是否大于
-lt(less than) 是否小于
-le 是否等于或小于
-ge 是否大于或等于
eg:[ free -m | grep Mem: | awk '{print $4}' -lt 1024 ] && echo “buzu”

d.常见的字符串比较运算符

运算符 作用
= 比较字符串内容是否相同
!= 比较字符串内容是否不同
-z 判断字符串内容是否为空

3.if条件测试语句
①单支
格式:if 条件测试操作
then 命令序列
fi
②双支
格式:if 条件测试操作
then 命令序列1
else 命令序列2
fi
③多支
格式:if 条件测试操作1
then 命令序列1
elif 条件测试操作2
then 命令序列2
else
命令序列3
fi
(ping -c 3 -i 0.2 -W 3 $1 &> /dev/null;-c 规定尝试次数,-i定义发送间隔,-W定义等待超时时间)
(read -p “Enter” GRADE;read是用来读取用户输入信息的命令能够把接收到的用户输入信息赋值给后面的指定变量,-p参数用于向用户显示一定的提示信息)

4.for条件循环语句
格式:for 变量名 in 取值列表
do
命令序列
done
eg:[root@linuxprobe ~]# vim Example.sh
#!/bin/bash
read -p “Enter The Users Password : " PASSWD
for UNAME in cat users.txt
do
id $UNAME &> /dev/null
if [ $? -eq 0 ]
then
echo “Already exists”
else
useradd KaTeX parse error: Expected 'EOF', got '&' at position 7: UNAME &̲> /dev/null ech…PASSWD” | passwd --stdin $UNAME &> /dev/null
if [ ? − e q 0 ] t h e n e c h o " ? -eq 0 ] then echo " ?eq0]thenecho"UNAME , Create success"
else
echo “$UNAME , Create failure”
fi
fi
done

Linux学习笔记5_第1张图片

你可能感兴趣的:(Linux学习笔记5)