shell脚本基础结构以及变量-Linux(9)

梦里梦外; 2022-05-26 12:19 158阅读 0赞

前言

  • 本博文讲shell脚本的结构以及变量,就当是笔记了,在我明明哥忘记的时候可以揪出来看看。

shell编程

首先看看脚本代码的基础结构

  1. #! /bin/bash
  2. # echo hello word
  3. echo "hello word"

其中,#! /bin/bash 指定执行脚本解释器的绝对路径名,# echo hello word 注释。

shell变量

  • 可以包含数字 字母 下划线,但是必须以字母,下划线开始
  • 大小写敏感
  • 不需要事先声明
  • 所有变量均看作是字符串处理,在需要时shell会转换成具体数值,进行相关操作

用户自定义变量

定义变量

  1. variable-name=value
  • 字符串里有空格就必须用双引号括起来,没有则不用
  • 等号两边不能有空格
  • $variable-name 取出变量值

清除变量

  1. unset variable-name

环境变量


































变量名称 含义说明
HOME 当前用户的主目录
PATH 冒号分隔,不指定目录时,则其为默认目录
PS1 命令提示符,超级用户为#,普通用户为$
PS2 二级提示符,一般为>
IFS 输入域分隔符,一般是空格,换行符
TERM 用来设置用户的终端类型

查看环境变量

  1. env
  2. $<变量名>

加入环境变量PATH

  1. export PATH=$PATH:/你的路径

位置变量

shell提供10个位置变量

  • $0 存放脚本名称
  • $1~$9 存放一般参数
  • shift [n] 可以将参数左移n个位置

现有脚本内容

  1. #! /bin/bash
  2. echo $0
  3. echo $1,$2,$3,$4,$5,$6,$7,$8,$9
  4. shift
  5. echo $1,$2,$3,$4,$5,$6,$7,$8,$9
  6. shift 2
  7. echo $1,$2,$3,$4,$5,$6,$7,$8,$9

执行脚本时传入参数

  1. sh test 11 22 33 44 55 66 77 88 99

其输出结果为
70

  • 执行脚本时,传入参数的顺序不能改变
  • shift移动是在上一次移动后的基础上

特殊变量

  • 特殊变量的变量值由系统指定

































变量名称 含义说明
$# 传递给脚本的实际参数个数
$$ 当前shell脚本的进程号
$* 位置参数的值,各个参数用环境变量IFS定义的分隔符分隔开
$@ 位置参数的值,不使用环境变量IFS定义的分隔符分隔
$! 上一个后台命令的进程号
$? 执行最后一条命令的退出状态

发表评论

表情:
评论列表 (有 0 条评论,158人围观)

还没有评论,来说两句吧...

相关阅读

    相关 linux基础——shell变量

    什么是变量? 简单的说,就是让某一个特定字串代表不固定的内容就是了。举个大家在课本中都会学到的数学例子,那就是:“ y = ax + b ”这东西,在等号左边的(y)就是

    相关 shell脚本变量

    环境变量和本地变量,环境变量是具有全局属性的。 在交互式shell下面定义变量:VALUE=100 这定义的即为本地变量,如果要将其变成环境变量则需要export VA

    相关 shell脚本变量

    变量定义及变量的划分 > 变量:即用一个特定的字符串去表示不固定的内容 1、自定义变量 自定义变量: 变量名=变量值 变量名必须以字母或下划线开头,区分大小写