Linux进阶-Shell编程与环境变量
创始人
2024-02-03 09:44:47
0

目录

定义变量:

使用变量:

将命令的结果赋值给变量:

删除变量:unset

退出当前进程:exit

读取从键盘输入的数据 :read

对整数进行数字运算:(())

逻辑与或:

检测某个条件是否成立:

管道(可将两个或多个命令连接在一起,上一个命令的输出信息会作为下一个命令的输入信息):command1 | command2

if语句 

if else语句

if elif else语句

 case in语句

for in循环 

while循环

函数


Shell脚本(shell命令按一定语法组成的文件)作用:

软件启动;

性能监控;

日志分析;

...

shell命令本质:内置命令/外部命令(应用程序)。(可由type 判断)

例如:创建一个hello的c文件,意在终端输出hello world。然后编译这个c文件(gcc hello.c -o hello),然后把hell移动到/usr/bin/。

当向终端输入hello时,终端输出hello world。这个c文件就成了shell的外部命令。

常用的shell解释器:/etc/shells

shell脚本常用后缀名:.sh

Shell启动方式

当程序运行(./)

指定解释器运行(/bin/bash)

source和.

Shell脚本语法

定义变量:

variable=value

variable='value'(符号内不做逻辑判断)

variable="value"。 

使用变量:

$variable

${variable}

将命令的结果赋值给变量:

variable=`command`

variable=$(command)

删除变量:unset

特殊变量描述
$0当前脚本的文件名
$n(n>=1)传递给脚本或函数的参数。n是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2
$#传递给脚本或函数的参数个数
$*传递给脚本或函数的所有参数
$@传递给脚本或函数的所有参数。当被双引号“”包含时,$@与$*稍有不同
$?上个命令的退出状态或获取函数返回值
$$当前Shell进程ID。对于Shell脚本,就是这些脚本所在的进程ID

退出当前进程:exit

读取从键盘输入的数据 :read

对整数进行数字运算:(())

逻辑与或:

command1&&command2

command1||command2

检测某个条件是否成立:

test expression

[ expression ]

选项描述
-eq判断数值是否相等
-ne判断数值是否不相等
-gt判断数值是否大于
-lt判断数值是否小于
-ge判断数值是否大于等于
-le判断数值是否小于等于
-z str判断字符串str是否为空
-n str判断字符串str是否为非空
=和==判断字符串str是否相等
-d filename判断文件是否存在,并且是否为目录文件
-f filename判断文件是否存在,并且是否为普通文件

管道(可将两个或多个命令连接在一起,上一个命令的输出信息会作为下一个命令的输入信息):command1 | command2

if语句 

if condition
thenstatement(s)
fi

if else语句

if condition
thenstatement1
elsestatement2
fi

if elif else语句

if condition1
thenstatement1
elif condition2
thenstatement2
...
elsestatement
fi

 case in语句

case expression inpattern1)statement1;;pattern2)statement2;;pattern3)statement3;;
......*)statementn;;
esac

for in循环 

for variable in value_list
dostatements
done

value_list:

直接给出具体的值;

给出一个取值范围;

使用命令的执行结果;

使用Shell通配符;

使用特殊变量。

 

while循环

while condition
dostatements
done

  

函数

function name(){statements[return value]
}

全局变量:直接定义,只能在当前的shell进程里访问,但其它进程以及shell进程的子进程是不能访问的。

环境变量:export,能在当前的shell进程以及shell进程的子进程访问,但其它进程是不能访问的。

shell进程每次启动时,它都会执行shell配置文件的代码来做一些初始化的工作。 

如果我们将shell变量的定义放到shell配置文件的话,shell进程一启动,就回去定义这些变量。

与Bash Shell有关的配置文件主要有:

/etc/profile

~/.bash_profile

~/.bash_login

~/.profile

~/.bashrc

/etc/bashrc

/etc/bash.bashrc

/etc/profile.d/*.sh

Shell执行顺序:/etc/profile、~/.profile(~/.bash_profile、~/.bash_login)

 

全部用户、全部进程共享:/etc/bash.bashrc

一个用户、全部进程共享:~/.bashrc

shell启动方式对变量的影响

shell子进程中执行:/bin/bash和./

当前进程中执行:source和.

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...