我是靠谱客的博主 鲜艳山水,最近开发中收集的这篇文章主要介绍Linux Ubuntu shell脚本的选择结构,循环结构的运用 大家好,我是练习编程时长两年半的个人练习生昆工第一ikun,今天咋们来聊一下Linux Ubuntu里一个很好用的东西,shell脚本。1.shell 的选择结构2.shell的循环结构3.shell 函数 好了,今天关于shell脚本的分享就到这了,我是练习编程时长两年半的个人练习生昆工第一ikun,大家明天再见。,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
大家好,我是练习编程时长两年半的个人练习生昆工第一ikun,今天咋们来聊一下Linux Ubuntu里一个很好用的东西,shell脚本。
1.shell 的选择结构
1.1 shell 中的if
1. if 判断式 then shell语句块1; fi 2. if 判断式 then shell语句块1 else shell语句块2 fi 3. if 判断式 then shell语句块1 elif 判断式 then shell语句块2 。。。。 elif 判断式 then shell语句块n-1 else shell语句块 n fi 4. if 判断式 then if 判断式 then if 判断式 then 。。。 shell语句块; else shell语句块 fi else shell语句块 fi else shell语句块 fi
1.2 shell中的判断式
1. test 表达式 (test 前后需要有空格) 2. [ 表达式 ] '[' 和 '] 前后需要有空格
1.3 shell 中整数的判断
-eq 等于 -ne 不等于 -gt 大于 -lt 小于 -ge 大于等于 -le 小于等于
1.4 shell中的逻辑运算
&& -a || -o ! !
1.5 exit
exit 0 正常结束shell exit 1 不正常结束 bash $0 重新执行脚本
1.6 shell 中文件的判断
1.6.1 文件类型的判断
bsp-lcd -f 判断文件是否存在,判断是否为普通文件 -d 判断文件是否存在,判断文件是否为目录文件 -p 判断文件是否存在,判断文件是否为管道文件 创建管道文件 mkfifo 文件名 -c 判断文件是否存在,判断文件是否为字符设备 /dev/video0 -b 判断文件是否存在,判断文件是否为块设备文件 /dev/sda -L 判断文件是否存在,判断文件是否为链接文件 /dev/stdin -S 判断文件是否存在,判断文件是否为套接字文件 -s 判断文件是否存在,判断文件地长度,长度大于0返回真 -e 判断文件是否存在
1.6.2 文件权限的判断
-w 写 -r 读 -x 执行权限
1.6.3 文件时间戳的判断
-nt 判断文件的时间更新 -ot 判断文件的时间更旧 -ef 判断inode 是否一样 eg: 判断两个文件,将时间更新的文件的内容复制到时间更旧的文件中,文件不存在就输出错误
1.8 case 表达式 in ....esac
case 表达式 in (注释: 表达和path匹配就执行相应的语句) path1) shell语句 ;; path2) shell语句 ;; ..... *) shell 语句 ;; ease
2.shell的循环结构
while 表达式 do shell循环体; done eg: 求1+2+3+。。。。+100 ? for循环 for((赋值表达式1;判断表达式2;自加自减表达式3)) do shell循环体; done for 的常规写法 for 变量 in 单词列表 do shell 循环体 done 注: 单词列表 ① 散乱的单词 ② 连续的数据 {start..end} ③ 将命令置换的结果作为单词列表
3.shell 函数
一般形式:
function 函数名(){
函数体
}
function 函数固定的标志
shell函数没有形参
shell函数内部的变量一般为全局变量
在变量前面加上 local 就是局部变量
shell函数的调用:
函数名
或者
函数名 argv[0] argv[1] .... 命令行参数
$1 $2 .....${n} 表示命令行参数
函数内部有命令行参数的时候需要调用函数的传递命令行参数;
函数以外的命令行参数都是从终端上传递;
$? 可以接收到函数的返回值(0-255)
下面,坤坤会用一个题目来运用选择结构和循环结构,开团!!!!
第一步 输入两个目录名 file_dir 和 dir_dir,判断是否存在,如果存在那么提示输入 yes|NO 删除,输入yes那么删除并重新创建,No退出程序;
第二步 在输入一个新的目录 new_dir,把 这个目录下的文件拷贝到file_dir下,把目录拷贝到dir_dir 下;
第三步 分别统计文件和目录的个数;
#!/bin/bash
read -p "请输入两个目录:" var1 var2
if test -e $var1 -a -e $var2
then
read -p "目录已存在,请输入[Y/N]删除并重新创建目录或退出:" var3
case $var3 in
"Y" | "y" | "yes" | "YES")
rm -r ./$var1
mkdir ./$var1
rm -r ./$var2
mkdir ./$var2
;;
"N" | "n" | "no" | "NO")
exit 0
;;
esac
else
echo 文件不存在,程序退出...
exit 0
fi
read -p "请输入一个新的目录:" var4
for var5 in `ls new_dir`
do
echo "$var5--------"
cp ./new_dir/$var5 ./$var1
((i++))
done
cp -r $var4 $var2
for conut in `ls ./$var1`
do
if test -f $conut
then
((i++))
fi
if test -d $conut
then
((n++))
fi
done
for conut in `ls ./$var2`
do
if test -f $conut
then
((i++))
fi
if test -d $conut
then
((n++))
fi
done
echo 有$i个文件,有$((n + 3))个目录
好了,今天关于shell脚本的分享就到这了,我是练习编程时长两年半的个人练习生昆工第一ikun,大家明天再见。
最后
以上就是鲜艳山水为你收集整理的Linux Ubuntu shell脚本的选择结构,循环结构的运用 大家好,我是练习编程时长两年半的个人练习生昆工第一ikun,今天咋们来聊一下Linux Ubuntu里一个很好用的东西,shell脚本。1.shell 的选择结构2.shell的循环结构3.shell 函数 好了,今天关于shell脚本的分享就到这了,我是练习编程时长两年半的个人练习生昆工第一ikun,大家明天再见。的全部内容,希望文章能够帮你解决Linux Ubuntu shell脚本的选择结构,循环结构的运用 大家好,我是练习编程时长两年半的个人练习生昆工第一ikun,今天咋们来聊一下Linux Ubuntu里一个很好用的东西,shell脚本。1.shell 的选择结构2.shell的循环结构3.shell 函数 好了,今天关于shell脚本的分享就到这了,我是练习编程时长两年半的个人练习生昆工第一ikun,大家明天再见。所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复