我是靠谱客的博主 鲜艳山水,最近开发中收集的这篇文章主要介绍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,大家明天再见。所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部