shell笔记8

author author     2022-08-07     328

关键词:

  1. shell的控制结构:条件结构、分支结构、循环结构

  2. if,条件结构


  3. if 表达式
    then 命令表
    [else 命令表]
    fi
    
    可以使用分号将多个命令在一行内进行组合。因此,处于美观和节省空间的考虑,上述格式简写为:
    if 表达式; then
      命令表
    [else 命令表]
    fi
  4. if语句可以无限嵌套

  5. if 表达式
    then 命令表
    [elif 表达式
    then 命令表]
    ... ...
    [else 命令表]
    fi
  6. 可以直接命令表换成一个if条件语句

  7. case结构

  8. case 表达式 in
      模式11[|模式12]...) 命令表1;;
      模式21[|模式22]...) 命令表2;;
      ...
          *) 命令表n;;
    esac
  9. 示例

  10.   1 #! /bin/bash
      2 #filename:a.sh
      3 case $1 in
      4 dir | path) echo "Current path is `pwd`";;
      5 date | time) echo "Today is `date`";;
      6 *) echo "Invalid argument!!"
      7 echo "Enter argument: dir/path/date/time";;
      8 esac
  11. case和if语句一样,可以嵌套

  12. select结构

    select循环结构,可以以一种更简便的方式生成菜单。生成的菜单有编号,在用户输入选择的编号后,可根据用户的选择执行相应的代码。

  13. select 变量 in 列表
    do
      命令表
    done
  14. 列表,是一个由字符串组成的序列。

  15. 使用select结构将会在屏幕上生成一个数字化的菜单,并提示用户进行选择,默认的提示符为#。用户只需要在提示符下输入对应的数字,即可完成选择。

  16. 通常,select总是与case结构一起使用,允许用户在菜单中选择,并基于选择执行相应的命令。

  17. select结构是一种循环,需要使用break命令退出循环,也可以使用exit命令结束脚本。

  18. 示例

  19.   1 #! /bin/bash
      2 #filename:a.sh
      3 echo "---------select one week plan---------"
      4 select N in Mon Tue Wed Thu Fri Sat Sun
      5 do
      6   case $N in
      7   Mon) echo "Monday";;
      8   Tue) echo "Tuesday";;
      9   Wed) echo "Wednesday";;
     10   Thu) echo "Thursday";;
     11   Fri) echo "Friday";;
     12   Sat) echo "Saturday";;
     13   Sun) echo "Sunday";;
     14   *) echo "wrong"
     15       break;;
     16   esac
     17 done
  20. 使用sh a.sh运行脚本时,显示select: not found。 需要使用bash a.sh来运行脚本

  21. # bash a.sh
    ---------select one week plan---------
    1) Mon
    2) Tue
    3) Wed
    4) Thu
    5) Fri
    6) Sat
    7) Sun
    #? 1
    Monday
    #?
  22. while循环

  23. while 表达式
    do
      命令表
    done
  24. while循环可嵌套

  25. 示例

  26.   1 #! /bin/bash
      2 #filename:a.sh
      3 i=1
      4 while [ $i -le 10 ]
      5 do
      6 echo "i=$i"
      7 i=$(($i+1))
      8 done
  27. 注,while后面的[],[后面有空格,]前面有空格,不然会出错。

  28. for循环

  29. for 变量 [ in 列表 ]
    do
      命令表
    done
  30. 示例

  31.   1 #! /bin/bash
      2 #filename:a.sh
      3 for i in 1 2 3 4 5 6
      4 do
      5 echo "i=$i"
      6 i=$(($i+1))
      7 done
  32. 如果省略了“in 列表”,则for会将当前执行脚本中的每个位置参数作为“列表”,一次执行列表中的一个。即“for 变量”隐含表示“for 变量[email protected]”。

  33. 示例(arg,可以是任何名字,不是固定的)

  34.   1 #! /bin/bash
      2 #filename:a.sh
      3 i=1
      4 for arg
      5 do
      6 echo "i=$i,parameters: $arg"
      7 i=$(($i+1))
      8 done
  35. until循环

  36. until是在条件为假时继续执行循环,在条件为真时,停止执行。

  37. until
        命令表1
    test 表达式
    do
        命令表2
    done
  38. 示例

  39.   1 #! /bin/bash
      2 #filename:a.sh
      3 i=1
      4 echo "Please enter the number N:"
      5 read N
      6 until
      7 test $i -ge $N
      8 do
      9 echo "i=$i"
     10 i=$(($i+1))
     11 done
  40. break语句

  41. break语句,可以结束while、for、until或者select等结构的执行,即从结构中跳出。退出循环后,将转到done语句后继续执行。

  42. 如果有多层结构嵌套,还可以在break关键字后面加上数字,指明要跳出的结构的层数。例如,break 2

  43. 示例

  44.   1 #! /bin/bash
      2 #filename:a.sh
      3 i=1
      4 echo "Please enter the number N:"
      5 read N
      6 until
      7 test $i -ge $N
      8 do
      9   if [ $i -le 4 ];then
     10     echo "hello"
     11     i=$(($i+1))
     12   else
     13     echo "i=$i"
     14     echo "world"
     15     break
     16   fi
     17 done
  45. continue语句

  46. continue语句和break用法相同,用来跳过本次循环中剩余的代码。

3.98.10-8.13听课笔记

Shell特殊符_cut命令 特殊符号: *任意个字符?任意一个字符#注释字符(在配置文件的命令前加#则命令不生效;shell脚本某一行加#则这一行不被执行,通常是注释)[[email protected]~]##ls-a[[email protected]~]#\脱义字符[[ema... 查看详情

管道符和作业控制,shell变量,环境变量配置

笔记内容:8.6管道符和作业控制8.7/8.8shell变量8.9环境变量配置文件笔记日期:2017.8.15 8.6管道符和作业控制650)this.width=650;"src="https://s5.51cto.com/wyfs02/M00/A7/37/wKioL1njizSQWm3JAAx4dwWB65M564.png"style="float:none;"title="管道符和 查看详情

大数据讲课笔记6.5zookeeper的shell操作

文章目录零、学习目标一、导入新课二、新课讲解(一)ZooKeeperShell概述(二)通过Shell命令操作ZooKeeper1、显示所有操作命令2、查看当前ZK内容3、查看当前节点数据4、创建节点5、获取节点6、修改节点7、监听节点... 查看详情

shell笔记2

shell类型:BourneShell、BourneAgainShell、CShell、KornShell、Perlshell用户可以选择自己喜欢的shell(在系统管理员为用户创建账户时指定),在/etc/passwd文件最后一个字段中可以看到用户当前使用的shell的名称使用grep命令查看/etc/passwd文件,... 查看详情

shell笔记

#!C:Gitinash#a=‘123‘;#echo"thevaris${a}";a=‘123‘#设定只读#readonlya#a=456#echo$a#unseta删除变量#打印字符串长度#echo${#a};#echo$PATH访问环境变量#提取子字符串#a=‘aaaa‘#echo${a:1:2}#string="alibabaisagreatcompany"#echo`exprin 查看详情

大数据讲课笔记4.3hdfs的shell操作(代码片段)

文章目录零、学习目标一、导入新课二、新课讲解(一)HDFS的Shell介绍(二)了解HDFS常用Shell命令1、三种shell命令方式2、FileSystemShell文档3、常用HDFS的shell命令(三)HDFS常用命令操作实战1、创建目录(... 查看详情

大数据讲课笔记4.3hdfs的shell操作(代码片段)

文章目录零、学习目标一、导入新课二、新课讲解(一)HDFS的Shell介绍(二)了解HDFS常用Shell命令1、三种shell命令方式2、FileSystemShell文档3、常用HDFS的shell命令(三)HDFS常用命令操作实战1、创建目录(... 查看详情

shell笔记

shell中sh,exec,source,fork,./的区别1,shshtest.sh​sh是通过创建子进程(subshell)去执行脚本,父进程无法使用子进程中的变量,而子进程对环境变量的修改也不会影响到父进程。父进程中的局部变量子进程也无法使用,子进程会继承父进... 查看详情

shell工具和脚本:学习笔记

...tps://missing-semester-cn.github.io/。本篇为学习第二节课所做的笔记,主题是Shell工具和脚本,在这节课中,介绍了bash作为脚本语言的一些基础操作,以及几种最常用的shell工具。变量赋值:foo 查看详情

acwinglinux基础课笔记shell语法(代码片段)

目录声明概论注释变量默认变量数组shell语法之expr命令shell语法之read命令shell语法之echo命令shell语法之printf命令shell语法之test命令与判断符号[]shell语法之判断语句shell语法之函数shell语法之exit命令shell语法之文件重定向shell语法之... 查看详情

shell笔记7

变量,为用户提供了一种存储、检索、操作数据的途径。环境变量、位置变量、预定义的特殊变量、用户自定义变量环境变量(1)SHELL环境变量,是一类shell预定义变量,是用于设置系统运行环境的变量,有系统统一命名。部分环... 查看详情

shell笔记1

shell是操作系统的外壳,是用户使用操作系统的命令接口,是一个介于用户和操作系统内核之间的桥梁。shell俗称,壳。是指“提供使用者使用界面”的软件(命令解析器)。作为命令语言,它交互式解释和执行用户输入的命令,或... 查看详情

shell编程笔记2--nfs挂载

@[toc]shell编程笔记2-ns挂载shell编程笔记2–ns挂载NFS简介NFS就是NetworkFileSystem的缩写,它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到... 查看详情

shell编程学习笔记--整数自增

在Shell脚本中,用于while或for循环中经常要涉及到整数自增的情况,下面罗列下可能的方式【方式一】declare-i来声明整数变量[email protected]:~# declare -i x=1  [email protected]:~# x+=1  [email prote 查看详情

shell脚本加密笔记!

你写的shell在生产环境是否加密?反正我是没有,线上环境看就看呗,觉得没啥。其实想想,好像也有几个好处。1、简单加密,防止别人看里面具体内容。2、可以隐蔽脚本中的密码等信息。(比如你的备份脚本,涉及到密码等... 查看详情

[shader]笔记2017.8.8

<1>在surfaceshader中的surf函数中,参数列表(Inputin,inoutSurfaceOutput)参数1是输入,参数2是输出   参数1的结构定义我们可以看见,参数2的结构定义为:   structSurfaceOutput{      half3 查看详情

shell笔记6

cut命令:文件剪切cut命令用来从指定文件中选择指定的行,输出到标准输出。cut-c3test.c显示文件的每行的第3个字符cut-b2test.c显示每一行的第2个字符cout-c1-10test.c显示每行第1个到第10个字符 查看详情

基本shell命令使用笔记

linux常用命令:(ls:列出目录内容)-a/-all列出所有文件,包括隐藏文件-l使用长格式显示详细信息,包括rwx (mkdir:建立目录)-p/-parents若要建立目录的上层目录尚未建立,则会一并建立上层目录mkdir-pparent/child (rmdir删除... 查看详情