自定义变量

变量名规则

和java相同,字母数字下划线组成,不能以数字开头

区分大小写

变量,等号,值中间不能出现出现任何空格

变量引用

var1=hello
echo $var1

#弱类型语言

一个简单的例子

#!/bin/bash
#

var1=abc
var2="CSDN"

echo $var1
echo $var2

执行

sh 文件名
#或
bash 文件名

位置变量

定义

  • 当一条命令或脚本执行的时候,后面可以跟多个参数,我们使用位置参数变量来表示这些参数

例:

sh 文件名 hello world 123 456
#在文件的程序中,我们可以用$1,$2,$3和$4分别代指文件名后面的四个参数。每个参数以空格分隔
位置参数变量 含义
\$m n为数字,\$0代表脚本本身,\$1~\$9代表第1~9个参数,10以上的参数需要用大括号表示,比如\${10
\$@ 命令行的所有参数,但是每个参数区别对待
\$* 命令行的所有参数,所有参数视为一个整体
\$# 参数个数

一个程序范例

#!/bin/bash
#

function add
{
    value=`expr $1 + $2`
    echo $value
}

add 123 456

环境变量

简介

  • 针对不同的用户,每个用户有一个专有的运行环境
  • 不同用户的专有环境变量就是一组默认环境变量的组合

环境变量分类

  • 针对所有用户生效的环境变量

    ​ /etc/profile

  • 针对特定用户生效的环境变量

    ​ ~/.bashrc或~/.bahs_profile

  • 临时有效的环境变量

    ​ 脚本或命令行使用export

  • 使用 source命令刷新配置文件

环境变量 含义
PATH 命令搜索的路径
HOME 用户家目录的路径
LOGNAME 用户登录名
PWD 当前所在路径
HISTFILE 历史命令的保存文件
HISTSIZE 历史命令保存的最大行数
HOSTNAME 主机名
SHELL 用户当前使用的shell
PS1 一级命令提示符
TMOUT 用户和系统交互过程的超时值
IFS 系统输入分隔符
OFS 系统输出分隔符

管道(|)

定义

将一个命令的输出作为另一个命令的输入

例:查找系统中python相关的软件包

rpm -qa > all_soft.txt
#用rpm命令查询所有的软件包,然后重定向到文件all_soft.txt中

rpm -qa | grep python

退出状态码

定义

所有的shell命令都使用退出状态码来告知shell已经执行完毕。退出状态码是0\~255的整数值

linux提供了\$?来捕获。

其中状态码为0则为命令执行成功,非0为执行不成功

ll -h
#当上面命令执行成功以后
echo $?
#控制台输出0,代表上一条命令成功执行

#在shell编程的时候,使用 exit 数字 自定义退出状态码,并退出脚本
exit 25

特殊符号

符号 作用
'' 单引号。在单引号中的特殊符号,比如\$和反引号,都没有特殊含义。
"" 双引号。除了\$,\,反引号外,其他特殊符号没有特殊含义。
\\ 反引号。反引号括起来的内容是系统命令,在Bash中会先执行它。和\$()作用一样。
\$() 和反引号用处相同,但是应该优先使用这种。
# 注释
\$ 用于调用变量的值
\ 转义符,跟在\之后的特殊符号将失去特殊含义,变成普通字符
如人饮水,冷暖自知。
最后更新于 2023-08-20