自定义变量
变量名规则
和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中会先执行它。和\$()作用一样。 |
\$() | 和反引号用处相同,但是应该优先使用这种。 |
# | 注释 |
\$ | 用于调用变量的值 |
\ | 转义符,跟在\之后的特殊符号将失去特殊含义,变成普通字符 |
Comments NOTHING