AxisZql’s blog
首页
搜索
归档
Reading List
留言
友情链接
随笔
axiszql
文章
29
分类
7
标签
51
Reading List
留言
友情链接
随笔
归档
搜索
分类
标签
技术分享
🥷shell 常用语法
发布于: 2023-3-29
最后更新: 2023-4-4
次查看
Linux
Shell
DevOps
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:
                          • shell中的if语句 - 开始认识 - 博客园
                            1、基本语法: 2、扩展语法: 3、语法说明: bash shell会按顺序执行if语句,如果command执行后且它的返回状态是0,则会执行符合该条件执行的语句,否则后面的命令不执行,跳到下一条命令
                            shell中的if语句 - 开始认识 - 博客园
                            https://www.cnblogs.com/kaishirenshi/p/9729800.html

                        函数

                        • 常用处理参数
                          • 参数处理
                            说明
                            $#
                            显示传递到脚本或者函数的参数个数
                            $*
                            以一个单字符串显示所有向脚本或函数传递的参数
                            $@
                            与$*相同,但是使用时加引号【事实证明,不加也行】
                            $$
                            脚本运行的当前进程PID
                            $!
                            后台运行的最后一个进程的ID号
                            $-
                            显示shell使用的当前选项,与set命令的功能相同
                            $?
                            显示其上一个最近命令的返回值,如果不是函数,而是一般系统命令,则一般认为0表示没有错误,其他任何值表示有错误
                            $[number]
                            表示获传入脚本中的第number个参数,如$1表示获取传入的第一个参数的值
                            测试用例:
                        • 函数定义
                          • 调用函数且获取返回值
                            • 一个完整判断目标命令是否存在,不存在则安装的例子【以下是golang中自动生成swagger文档的工具:swag】

                              相关Linux知识

                              文件保护码
                              其中 r:4, w:2, x:1
                              notion image
                              • 作者:axiszql
                              • 链接:https://axiszql.com/article/linux-learn-shell
                              • 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
                              相关文章
                              Linux开发环境配置杂项
                              Flutter 开发笔记MongoDB事务
                              Loading...
                              目录
                              0%
                              输入输出数组循环if语句函数相关Linux知识
                              axiszql
                              axiszql
                              向往Rust、C++和Go的家伙!🐧
                              文章
                              29
                              分类
                              7
                              标签
                              51
                              最新发布
                              《Rust Course》 learning Not
                              《Rust Course》 learning Not
                              2025-4-3
                              Algorithm Note
                              Algorithm Note
                              2025-4-3
                              Vscode-NeoVim、WLS2 Vim /NeoVim、Goland+Vim使用技巧
                              Vscode-NeoVim、WLS2 Vim /NeoVim、Goland+Vim使用技巧
                              2025-3-16
                              Windows 开发环境下的疑难杂症
                              Windows 开发环境下的疑难杂症
                              2025-3-16
                              C++开发常用技巧
                              C++开发常用技巧
                              2024-10-4
                              集成Gitlab CI/CD、Docker、Kubernetes来实现流水线部署
                              集成Gitlab CI/CD、Docker、Kubernetes来实现流水线部署
                              2024-9-10
                              目录
                              0%
                              输入输出数组循环if语句函数相关Linux知识
                              2022-2025axiszql.

                              AxisZql’s blog | 向往Rust、C++和Go的家伙!🐧

                              Powered byNotionNext 4.7.7.