1、Shell 变量
使用变量
重新赋值变量
只读变量
删除变量
2、Shell 字符串
单引号
双引号
- 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
- 单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用。
获取字符串长度
提取子字符串
查找子字符串
3、Shell 数组
定义数组
读取数组
获取数组的长度
4、Shell 注释
单行注释
多行注释
5、Shell 传递参数
以下实例我们向脚本传递三个参数,并分别输出,其中 $0 为执行的文件名:
6、Shell 基本运算符
算术运算符
关系运算符
布尔运算符
逻辑运算符
字符串运算符
文件测试运算符
7、Shell echo命令
显示转义字符
显示换行
显示结果定向至文件
8、Shell 流程控制
if else
if else-if else
for 循环
while 语句
case … esac
9、Shell 函数
函数参数
10、其他操作
获取上级目录
获取上上级目录
BASH_SOURCE 是 Bash shell 的一个特殊变量,它不是一个全局通用的概念,而是专属于 Bash shell 脚本环境的。在 Bash shell 中,BASH_SOURCE 是一个数组,其第一个元素给出了当前正在执行的脚本文件的绝对路径名
和 都可用于在 shell 脚本中获取当前脚本的目录路径,但是它们之间存在一些关键区别:
- $(dirname $0):
- 是一个 shell 变量,它存储着当前执行的脚本名称(通常是相对路径或绝对路径)。
- 是一个 shell 内置命令,用于从文件路径中提取目录部分。
- 当在一个脚本中使用 时,它会返回执行脚本的路径(不包括脚本文件名)。
例子:
- ${BASH_SOURCE[0]}:
- 是 Bash shell 的一个特殊变量,它提供了脚本本身的源路径(绝对路径)。
- 与 不同, 在脚本被 (或 )执行时依然能正确反映源脚本的位置,而 在这种情况下会给出执行上下文的脚本(即 sourcing 的那个脚本)的路径。
- 对于非直接执行(即通过 )的所有情况, 更可靠,因为它始终指向当前解析的脚本文件。
例子:
总结来说:
- 如果仅关心直接执行脚本时的路径,并且不涉及脚本被 执行的情况,两者可能返回相同的结果。
- 在复杂的脚本嵌套调用或脚本被 执行的场景下,使用 更为准确和一致。特别是在 Bash shell 中,如果需要处理脚本被间接调用的情况,应当优先考虑使用 。
11、字符串补充
将命令的结果赋值给变量
Shell 也支持将命令的执行结果赋值给变量,常见的有以下两种方式:
第一种方式把命令用反引号(位于 Esc 键的下方)包围起来,反引号和单引号非常相似,容易产生混淆,所以不推荐使用这种方式;第二种方式把命令用$()包围起来,区分更加明显,所以推荐使用这种方式。
12、shell命令test
实例
1、执行npm打包
2、写一个shell脚本,双击shell文件后自动执行当前文件夹下的指定nodejs文件
创建一个shell脚本文件(例如:run_node_script.sh),并在该文件中编写如下内容:
保存此文件后,需要赋予其执行权限:
现在,当你双击这个shell脚本时(或者在终端中运行 ),它会尝试执行当前目录下的app.js文件。
注意:此脚本适用于Linux和macOS系统,Windows环境下可能需要对脚本进行调整以适应cmd或PowerShell环境,并且通常不支持双击直接执行shell脚本,可能需要通过其他方式调用(如通过git bash等)。
到此这篇shell编程视频教程(shell编程菜鸟教程)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/shellbc/56911.html