欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Shell脚本

程序员文章站 2022-05-03 22:02:10
执行Shell 1. 输入完整脚本文件路径即可执行。 提示:权限不够,则执行 。 2. 执行 。 简单的脚本 shell !/bin/bash 上面的是指定解释器 echo $PATH echo 路径输出完毕! echo [ 条件表达式 ] 条件表达式两侧需要各有一个空格。 使用 返回条件表达式结果 ......

执行shell

  1. 输入完整脚本文件路径即可执行。

    提示:权限不够,则执行chmod u+x 文件名

  2. 执行bash shell文件名称

简单的脚本

#!/bin/bash
# 上面的是指定解释器
echo $path
echo 路径输出完毕!
echo `date +%y%m%d`

接受输入参数

  • 执行shell文件时,在文件后使用空格隔开多个输入参数。

  • shell文件中使用输入参数

    参数 说明
    $n 用户输入的第n个参数,从1开始
    $# 用户输入的擦书总数
    $* 用户输入的所有参数值,使用空格隔开

条件测试语法

  • shell 脚本中的条件测试语法可以判断表达式是否成立,

    若条件成立则返回数字 0,否则便返回其他随机数值。

语法格式:

[ 条件表达式 ]
  • 条件表达式两侧需要各有一个空格。
  • 使用$?返回条件表达式结果。
  • 条件表达式可以是变量也可以是具体的值。
  • &&表示当前面的命令执行成功后才会执行它后面的命令。
  • ||表示当前面的命令执行失败后才会执行它后面的命令。
  • !示把条件测试中的判断结果取相反值。

测试运算符

运算符 说明
-d 测试文件是否为目录类型
-e 测试文件是否存在
-f 判断是否为一般文件
-r 测试当前用户是否有权限读取
-w 测试当前用户是否有权限写入
-x 测试当前用户是否有权限执行
-eq 两个数字是否等于
-ne 两个数字是否不等于
-gt 数字a是否大于数字b
-lt 数字a是否小于数字b
-le 数字a是否等于或小于数字b
-ge 数字a是否大于或等于数字b
= 比较字符串内容是否相同
!= 比较字符串内容是否不同
-z 判断字符串内容是否为空

实例:

[ 1 -eq 2 ] || echo '这个说法是对的'

流程控制语句

if语句

语法:

if 条件测试语句 then
  命令...
fi

if-else语句

语法:

if 条件测试语句 then
  命令...
else
  命令...
fi

case语句

语法:

case 变量值 in
值1)
  命令..
  ;;
值2)
  命令..
  ;;
  
  ...
  
*)
  默认的命令..
  ;;
esac
  • *代表不在所列出范围内的值。
  • 匹配值可以有多个。

条件循环语句

for循环

语法:

for 变量名 in 取值列表
do
  命令...
done
  • 取值列表可以是命令查出来的值。
  • 循环体内可以使用$变量名的形式获取当前变量的值。

while循环

语法:

while 条件测试语句
do
  命令...
done