category
type
status
date
slug
summary
tags
password
Property
Apr 4, 2023 12:43 PM
icon
输入输出
- 输出变量值
- 输出字符串
数组
- 先将数组扩展成列表,再利用
@
或*
来获取数组元素的格式
- 如果数组中某个元素是字符串,还可以通过指定下标的方式获取该元素的长度
- 例子
循环
- 循环遍历数组中的元素
- 获取目标目录下符合目标格式的所有文件,并输出其文件名
if语句
- 语法【注意[]和相关条件语句command必须用空格隔开】
- 数值判断
- 逻辑判断
- 常用文件或目录判断
- IF高级特性:
双圆括号
(( ))
:表示数学表达式
在判断命令中只允许在比较中进行简单的算术操作,而双圆括号提供更多的数学符号,而且在双圆括号里面的'>','<'号不需要转意。双方括号
[[ ]]
:表示高级字符串处理函数
双方括号中判断命令使用标准的字符串比较,还可以使用匹配模式,从而定义与字符串相匹配的正则表达式。双括号的作用:
在shell中,
[ $a != 1 || $b = 2 ]
是不允许出,要用[ $a != 1 ] || [ $b = 2 ]
,而双括号就可以解决这个问题的,[[ $a != 1 || $b = 2 ]]
。又比如这个[ "$a" -lt "$b" ]
,也可以改成双括号的形式(("$a"< "$b"))
- References:
函数
- 常用处理参数
参数处理 | 说明 |
$# | 显示传递到脚本或者函数的参数个数 |
$* | 以一个单字符串显示所有向脚本或函数传递的参数 |
$@ | 与$*相同,但是使用时加引号【事实证明,不加也行】 |
$$ | 脚本运行的当前进程PID |
$! | 后台运行的最后一个进程的ID号 |
$- | 显示shell使用的当前选项,与set命令的功能相同 |
$? | 显示其上一个最近命令的返回值,如果不是函数,而是一般系统命令,则一般认为0表示没有错误,其他任何值表示有错误 |
$[number] | 表示获传入脚本中的第number个参数,如$1表示获取传入的第一个参数的值 |
测试用例:
- 函数定义
- 调用函数且获取返回值
- 一个完整判断目标命令是否存在,不存在则安装的例子【以下是golang中自动生成swagger文档的工具:swag】
相关Linux知识
文件保护码
其中r:4
,w:2
,x:1

- 作者:axiszql
- 链接:https://axiszql.com/article/linux-learn-shell
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章