千家信息网

shell脚本总结

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,Shell语言的总结Shell变量1.用户自定义 :标示符从右向左赋值引用变量 $清除变量$unsetZ例如$count=1$echo$HOME2.命令行参数变量$0与键入行的命令行一样,包含脚本文件
千家信息网最后更新 2026年11月01日shell脚本总结

Shell语言的总结

Shell变量

1.用户自定义 :标示符

从右向左赋值

引用变量 $

      清除变量 $unset Z

       例如 $count= 1

          $echo$HOME

2.命令行参数变量

 $0  与键入行的命令行一样,包含脚本文件名

 $1  第一个参数

 $2

 $3

3.位置变量

$@ 包含所含命令行参数 "$1 $2 $3 $4 $5 $6 $7$8¥9"

$* 所包含命令行的参数 "$1 $2 $3 $4 $5 $6 $7$8¥9"

$# 包含命令行参的个数

$? 包含前一个命令的退出状态

$$ 包含正在执行进程的号

4.环境变量:env

$PATH  shell的搜索路径

$HOME  /etc/passwd文件中列出的用户目录

$IFS 默认为空格 tab及换行符

$TERM 终端类型 常用的有vt100,ansi,vt200.xterm

二

Shell语句

1.说明性语句   #xxxxxxx

2.功能性语句    read(从标准输入读入一行)

          Expr(算术运算命令)

          Test(文件属性 字符串 整数)

1.test $name -eq $1

 echo $?

2if test -f $filename

 then

……

 Fi

3if [ -f $filename ]

 then

……

 fi

4.整数测试

a -eq b 测试a 与b 是否相等

a -ne b测试a 与b 是否不相等

a -gt b 测试a 是否大于b

a -ge b 测试a 是否大于等于b

a -lt b 测试a 是否小于b

a -le b 测试a 是否小于等于b\

5.文件测试

-d name 测试name 是否为一个目录

-f name 测试name 是否为普通文件

-L name测试name 是否为符号链接

-r name 测试name 文件是否存在且为可读

-w name 测试name 文件是否存在且为可写

-x name 测试name 文件是否存在且为可执行

-s name 测试name 文件是否存在且其长度不为0

f1 -nt f2 测试文件f1 是否比文件f2 更新

f1 -ot f2 测试文件f1 是否比文件f2 更旧

三.结构性语句

1. If 模式

     Then

    fi

2.if 表达式

    Then

    命令表

   Else

    命令表

   Fi

记住 -f检测是否为文件  -d检测是否为目录

4.分之语句

Case 字符串变量 in(case只能检测字符串变量)

常量字符串)      //变量名等于 常量字符串则执行命令一

    命令表1

;;

常量字符串)

    命令表2;;

常量字符串)

    命令表3

;;

常量字符串)

    命令表4

;;

  ×)        //*表示其他模式

    命令5

;;

esac

5循环语句

A)for变量名 in 变量列表

   Do

    命令表

Done

变量依次取单词表中的各个单词, 每取一次单词, 就执行一次循环体中的命令. 循环次数由单词表中的单词数确定. 命令表中的命令可以是一条, 也可以是由分号或换行符分开的多条。如果单词表是命令行上的所有位置参数时, 可以在for语句中省略 "in 单词表" 部分。直到变量名把变量列表中的所有变量都取到了   循环体才会结束

6while 表达式

     Do

     命令表    //  表达式为真    执行命令表

Done

while语句首先测试其后的命令或表达式的值,如果为真,就执行一次循环体中的命令,然后再测试该命令或表达式的值,执行循环体,直到该命令或表达式为假时退出循环。

while语句的退出状态为命令表中被执行的最后一条命令的退出状态。

7.until 表达式

 Do

    命令表    //表达式为假  直到表达式为真则 退出循环

Done

until循环与while循环的功能相似, 所不同的是只有当测试的命令或表达式的值是假时, 才执行循环体中的命令表, 否则退出循环. 这一点与while命令正好相反

8break  and  continue

配合循环语句  混合使用

break n 则跳出n层;

continue语句则马上转到最近一层循环语句的下一轮循环上,

continue n则转到最近n层循环语句的下一轮循环上

Shell函数

shell 函数

1.函数定义方式

function_name()

{

命令列表//发挥空间

}

function function_name() //这种不常用

{

命令列表//发挥空间

}

2.函数的参数传递

function_name 12 $value ..

12:函数体内引用12 ,用 $1 表示

value:函数体内引用 value ,用 $2 表示

3.函数返回值调用

代表函数的返回状态 :$?

1)有 return 的函数 $? 表示 return 的值

2)没有 return 的函数,$? 函数体内最后一条指令的返回状态

4.函数输出内容引用

通过反单撇号来引用函数输出,一般为字符串

count=`function_name $value`

5.函数的返回值

Fun $value

Echo $?

Shell变量的作用域

1.局部变量   作用于函数体内

    关键字 local

2.全局变量 作用于脚本内部任何地

         初始化以后的该变量的内容  否则为空

Count= 5

3.独立于脚本文件外的

   关键字 export



命令 测试 变量 循环 函数 文件 语句 表达式 字符 字符串 单词 参数 常量 循环体 状态 脚本 作用 目录 检测 位置 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 喔噻互联网科技有限公司 互联网的科技 互联网科技的 上海挚品互联网科技 世界互联网领先科技成果 百单互联网科技有限公司 西安互联网科技公司 互联网前沿科技 互联网科技创新企业排名 玖二柒互联网科技公司待遇 互联网科技实习生岗位职责 宁夏科技产业互联网案例 苏州五指互联网络科技有限 洛阳共同富裕互联网科技有限公司 恒生互联网科技业指数调整周期 锡山区互联网智能科技产品供应 小米互联网科技园入驻 半导体行业属于互联网高科技类吗 35岁以上互联网科技行业 广州互联网高科技取餐柜 上游互联网科技 互联网科技咨询 互联网科技商业 开一家科技互联网公司需要多少钱 乌鲁木齐新华智原互联网科技学校 互联网公司高科技产品 启辰互联网科技 互联网科技手机排行榜 容联科技互联网电商 银川新华互联网科技学校是国营吗
0