Linux 之 shell 编程

打印 上一主题 下一主题

主题 556|帖子 556|积分 1668

Linux 之 shell 编程学习笔记(并不完全正确,有误请指正)

概念性知识点

脚本概念

脚本(Script),是使用一种特定的描述性语言,依据一定的格式编写的 可执行文件
运行脚本要求

脚本须有 可执行 权限,即 x 权限
内容格式:以#!/bin/bash开头
脚本的执行方式

法一(需可执行权限)

赋予脚本可执行权限:chmod u+x [脚本]
在 有可执行权限 的前提下,使用./[脚本] 或 直接输入脚本的绝对路径 [绝对路径] 即可运行脚本
法二(无需可执行权限)

直接使用sh [脚本]命令运行脚本
shell 编程知识点

shell 的变量

Linux shell 的变量分为 系统变量 和 用户变量
常见系统变量:\$HOME 、\$PWD 、\$PATH 、\$USER 、$SHELL 等
常用命令

set查看当前shell中所有变量unset [变量]撤销变量echo $[变量]查询变量的值
基本规则

与其他语言规则大同小异
注意:等号两侧 不能有空格
变量名一般习惯为大写(约定俗成)
基本语法

1. 定义变量:[变量名]=[值](中间不能有空格)
2. 撤销变量:unset [变量]
3. 定义静态变量:readonly [变量名]=[值] (静态变量不能被撤销,即不能被 unset )
4. 将命令的结果赋给变量:[变量名]=`[命令]` 或[变量名]=$([命令]) (第一种写法中 ` 号为 tab 键上面的键
5. 输出变量时带上 $ 符号,即 echo $[变量]
位置参数变量


例如:

传参,输出:

预定义变量


例如:

注意:第二行 & 符号表示 以后台方式运行
输出:

shell 的多行注释

格式

<strong>:
shell 的运算符

shell 运算的三种方法

法一(不好用)

[变量]=$(([表达式]))

法二(好用)

[变量]=$[[表达式]]

法三(难用)

[变量]=`expr[简单表达式]`
!!!注意:` 号为反引号
数字与符号 间有空格
* 号前必须带转义字符 \

shell 的条件判断

判断语句

[ condition ] // 非空 返回 true ,空 返回 false
可用echo $?查询上一条判断是否执行成功( 0 为 true ,>1 为 false )
注意:condition 前后有 空格
三元运算符

[ condition ] && [语句1] || [语句2]
若 condition 满足,则执行语句1
两个整数之间比较

= 字符串比较
-lt 小于(less than)
-le 小于等于(less equal)
-eq 等于(equal)
-gt 大于(greater than)
-ge 大于等于(greater equal)
-ne 不等于(Not equal)
按照文件权限进行判断

-r 有读的权限(read)
-w 有写的权限(write)
-x 有执行的权限(execute)
按照文件类型进行判断

-f 文件存在并且是一个常规的文件(file)
-e 文件存在(existence)
-d 文件存在并是一个目录(directory)
shell 的流程控制

if条件判断

!!!注意:condition 前后必须有 空格,即使没有 condition 也要有空格
基本语法

单分支
  1. #单分支
  2. if [ condition ]
  3. then
  4.         [符合该条件执行的语句]
  5. fi
复制代码
例如:

多分支
  1. #多分支
  2. if [ condition ]
  3. then
  4.         [符合该条件执行的语句]
  5. elif [ condition ]
  6. then
  7.         [符合该条件执行的语句]
  8. else
  9.         [符合该条件执行的语句]
  10. fi
复制代码
例如:

case选择语句

基本语法
  1. case $1 in
  2. "[条件]")
  3.         [符合该条件执行的语句]
  4. ;;                                 // ;; 符号代表 结束
  5. "[条件]")
  6.         [符合该条件执行的语句]
  7. *)                                 //如果没有符合上面条件的值,则执行这段代码
  8.         [符合该条件执行的语句]
  9. esac
复制代码
例如:

输出:

for 循环

基本语法1
  1. for [变量] in [值]
  2. do
  3.         [代码块]
  4. done
复制代码
例如:

基本语法2
  1. for (([初始值];[循环控制条件];[变量的变化]))
  2. do
  3.         [代码块]
  4. done
复制代码
例如:

while 循环

基本语法
  1. while [ 条件 ] //注意 条件 前后有空格
  2. do
  3.         [代码块]
  4. done
复制代码
例如:

read 读取控制台的输入

基本语法

read -p "[提示语]"指定输入时的提示语read -t [秒]指定输入的等待时间
例如:

shell 的函数

系统函数

basename 基本语法

basename [文件路径]获取文件名basename [文件路径] [后缀]获取文件名(不带后缀)
例如:

dirname 基本语法

dirname [文件绝对路径]获取文件的路径
例如:

自定义函数

基本语法
  1. function [函数名]{
  2.         [代码块]
  3. }
复制代码
例如:

函数调用
  1. [函数名] [参数]
复制代码
例如:


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

我可以不吃啊

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表