Shell脚本和编程|青训营笔记

67 阅读1分钟
Shell

处理来自终端模拟器的输入,解释执行之后输出结果给终端

Bash

shell的一种实现

变量
  1. 自定义变量,作用域为当前shell;定义变量时,变量名不加美元符号($):your_name="lihua",变量名和等号之间不能有空格 使用变量 使用一个定义过的变量,只要在变量名前面加美元符号即可

your_name="qinjx"
echo $your_name

echo ${your_name}
变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界

  1. 环境变量,作用域为当前shell和其子shell 定义方式:export,declare -x
  2. 系统环境变量
  • $0 当前shell名称/脚本名称
  • $# 传入脚本的参数数量
  • $* 传入脚本的所有参数
  • $? 上条命令执行的状态码
  • $PS1 命令提示符
  • $HOME 用户主文件夹
  • $PATH 全局变量的搜索路径

作用域为所有shell 定义方式: 启动加载

declare [+/-] 选项变量

-给变量设定类型属性
+取消变量的类型属性
-a 将变量声明为数组类型
-i 将变量声明为整数型
-x 将变量声明为环境变量
-r 将变量声明为只读变量
-p 显示指定变量的被声明的类型

循环

while循环
While condition ; do 程序段: done

until循环

until condition ; do程序段; done

for循环

for var in [words...]; do程序段; done

shell中函数的定义格式如下:

[ function ] funname [()]

{

    action;

    [return int;]

}

  • shell自上而下执行,函数必须在使用前定义

  • 函数获取变量和shell script类似,在Shell中,调用函数时可以向其传递参数。在函数体内部,通过 $n 的形式来获取参数的值,例如,$1表示第一个参数,$2表示第二个参数...

  • 函数内return 仅仅表示函数执行状态,不代表 函数执行结果

  • 返回结果一股使用echo、 printf, 在外面使用 $()、`` 获取结果

  • 如果没有return ,函数状态是上一条命令的执行状态,存储在$?中