shell编程--变量和if语句的使⽤
⼀、什么是Shell?
shell是外壳的意思,就是操作系统的外壳。我们可以通过shell命令来操作和控制操作系统,⽐如Linux中的Shell命令就包括ls、cd、pwd等等。总结来说,Shell是⼀个命令解释器,它通过接受⽤户输⼊的Shell命令来启动、暂停、停⽌程序的运⾏或对计算机进⾏控制。
⼆、什么是脚本?
脚本就是由Shell命令组成的⽂件,这些命令都是可执⾏程序的名字,脚本不⽤编译即可运⾏。它通过解释器解释运⾏,所以速度相对来说⽐较慢。
三、Linux中有哪些脚本解释器?
有dash和bash两种,但dash没有bash功能全⾯,所以通常使⽤bash。
可以通过命令来查看系统中的脚本解释器: ls -l /bin/*sh
linux shell编程求和注意:执⾏之前⾸先要为脚本⽂件添加可执⾏权限,不然就得⽤root权限才能执⾏!
添加可执⾏权限: chmod +x name.sh 回车
四、shell脚本的执⾏⽅式
1) ./name.sh 这种⽅式脚本第⼀⾏⼀定要加#!/bin/bash
2) /bin/bash name.sh
3) bash name.sh
4) sh name.sh
在编译的时候⽤空格分割依次传⼊参数
./name.sh 1234 abcd
参数1 参数2
shell 脚本常⽤参数
#!/bin/sh # 在脚本第⼀⾏脚本头 # sh为当前系统默认shell,可指定为bash等shell
sh -x # 执⾏过程
sh -n # 检查语法
(a=bbk) # 括号创建⼦shell运⾏
basename /a/b/c # 从全路径中保留最后⼀层⽂件名或⽬录
dirname # 取路径
$RANDOM # 随机数
$$ # 进程号
source FileName # 在当前bash环境下读取并执⾏FileName中的命令 # 等同 . FileName sleep 5 # 间隔睡眠5秒
trap # 在接收到信号后将要采取的⾏动
trap ""23 # 禁⽌ctrl+c
$PWD # 当前⽬录
$HOME # 家⽬录
$OLDPWD # 之前⼀个⽬录的路径
cd - # 返回上⼀个⽬录路径
local ret # 局部变量
yes # 重复打印
yes |rm -i * # ⾃动回答y或者其他
ls -p /home # 区分⽬录和⽂件夹
ls -d /home/ # 查看匹配完整路径
time a.sh # 测试程序执⾏时间
echo -n aa;echo bb # 不换⾏执⾏下⼀句话将字符串原样输出
echo -e "s\tss\n\n\n" # 使转义⽣效
echo $a | cut -c2-6 # 取字符串中字元
echo {a,b,c}{a,b,c}{a,b,c} # 排列组合(括号内⼀个元素分别和其他括号内元素组合)
echo $((2#11010)) # ⼆进制转10进制
echo aaa | tee file # 打印同时写⼊⽂件默认覆盖 -a追加
echo {1..10} # 打印10个字符
printf '%10s\n'|tr "" a # 打印10个字符
pwd | awk -F/ '{ print $2 }' # 返回⽬录名
tac file |sed 1,3d|tac # 倒置读取⽂件 # 删除最后3⾏
tail -3 file # 取最后3⾏
outtmp=/tmp/$$`date +%s%N`.outtmp # 临时⽂件定义
:(){ :|:& };: # 著名的 fork,系统执⾏海量的进程,直到系统僵死
echo -e "\e[32m颜⾊\e[0m" # 打印颜⾊
echo -e "\033[32m颜⾊\033[m" # 打印颜⾊
echo -e "\033[0;31mL\033[0;32mO\033[0;33mV\033[0;34mE\t\033[0;35mY\033[0;36mO\033[0;32mU\e[m" # 打印颜⾊
if语句的使⽤
⼀、⽐较数字的⼤⼩----双括号
⼆、判断⽬录是否存在 -d
三、判断⽂件是否存在
四、多个if判断
逻辑运算符解析:
逻辑运算符解析:
-f 判断⽂件是否存在 eg: if [ -f filename ]
-d 判断⽬录是否存在 eg: if [ -d dir ]
-eq 等于应⽤于:整型⽐较
-ne 不等于应⽤于:整型⽐较
-lt ⼩于应⽤于:整型⽐较
-gt ⼤于应⽤于:整型⽐较
-le ⼩于或等于应⽤于:整型⽐较
-ge ⼤于或等于应⽤于:整型⽐较
-a 双⽅都成⽴(and)逻辑表达式 –a 逻辑表达式-o 单⽅成⽴(or)逻辑表达式 –o 逻辑表达式
-
z 空字符串
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论