欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

shell脚本的简单学习

发布时间:2025/3/17 编程问答 35 豆豆
生活随笔 收集整理的这篇文章主要介绍了 shell脚本的简单学习 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

什么是shell?

shell是用户使用linux的工具,它有两种执行方式,一种是交互式解释执行,我们平时操作linux的各种命令就属于这种。另一种是批处理的方式,类似于程序性语言,有变量和参数,具有流程控制结构。

shell中的变量

我们可以在shell中定义一个变量,并赋值,正如其它语言一样。

  • env #显示全局变量(系统变量)
  • set #显示所有变量
  • unset + 变量名 #删除一个变量。
  • echo $变量 # 打印变量的值
  • export 变量 # 把变量声明为全局变量(即在当前终端开一个子bash或新开终端,通过export 变量,可以让变量继续生效)
  • 修改环境变量PATH: 编辑系统文件/etc/profile,将python的路径加入PATH全局变量,保存退出。
  • {}声明变量的边界

shell中的运算符(( )):

  • 算术运算符:+、-、*、/、%
  • 赋值运算符:=、+=、*=、/=、%= 例子:



  • 关系运算符:
    • ==、>、>=、<、<= 例子:

    • &&逻辑与、||逻辑或、!=逻辑非 例子:

  • bc 计算器,支持浮点数运算

test测试命令:

  • (()) 常用于数字之间的关系运算,但是有很大的局限性。而test命令适用于各种情况,应用更方便。
  • test -n 'abc' # 测试字符串abc的长度是否为零,如果不为零,那么测试结果为真0;如果是空字符,那么为假1
  • [  ] 我们习惯用两个中括号来代替test命令。注意:中括号内的首位打空格。测试字符串长度不为零,用[  ]表达
  • test / [  ] 命令测试字符常用的选项:
    • -n #字符串长度不为零
    • -z #字符串长度为零
    • = #字符串是否相等
    • != #字符串不相等
  • test / [  ]:-a逻辑与、-o逻辑或
  • test / [  ] 测试数字常用选项:
    •  -eq #整数相等
    • -ge #大于等于
    • -le #小于等于
    • -gt #大于
    • -lt #小于
    • -ne #不等于
  • test / [  ] 测试文件类型:
    • -b #判断文件是块设备
    • -d #判断文件是目录
    • -f #判断文件是普通文件
    • -h #判断文件是普通文件
  • 例子:
    • 用户认证
    • 判断块设备
    • 判断目录



shell流程控制:

  • if...fi:写一个判断登录是否成功的脚本
    注意:如果脚本无法执行,chmod +x 脚本 修改权限
  • if...elif...else...fi 判断文件类型,多个分支条件:


  • while ...do...done 循环:


    sleep 1 暂停1秒;第10次不满足,done结束;done下面可以跟下一条命令
  • 循环猜年龄:
  • 判断登录用户,登录成功后执行命令:


  • for循环:
    • C语言风格,例子:打印乘法表

      控制打印格式:-n 当前行不换行打印,echo 空 换行
    • shell格式:

    • 实战:测试哪些ip地址可用

      每次ping会输出一长串提示信息,所以通过 &> /dev/null 把提示信息写入空文件;
      ping成功了输出提示,并写入一个文档记录下来。
    • 检测/dev下各种类型的文件数量
      for后面跟的有结果就行,比如:

      输出/test目录下的文件
      另外,相对路径不能被判断文件类型的条件检测到,所以要写绝对路径。


      注意: 如果链接文件的判断条件在普通文件之下,那么,在if判断普通文件时,回去寻找连接文件的源文件类型,如果源文件是普通文件,那么算作普通文件,稍后之后的链接文件就不会再判断了,为0. 因为if判断过的文件不会再去重复判断。 除非把链接文件的判断条件放在前面。

总结

以上是生活随笔为你收集整理的shell脚本的简单学习的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。