shell脚本笔记

shell 脚本(基础入门)

1、shell的作用是:

  • 解释执行用户输入的命令或者程序等
  • 用户输入一条命令,shell就解释一条
  • 键盘输入命令,Linux给予响应的方式,称之为交互式

shell是一块包裹着系统核心的壳,处于操作系统的最外层,与用户直接对话,把用户的输入,解释给操作系统,然后处理操作系统的输出结果,输出到屏幕给用户看到结果。

2、shell的变量

  • 只包含字母、数字和下划线
  • 不能以数字开头
  • 避免使用 Shell 关键字
  • 使用大写字母表示常量
  • 避免使用特殊符号
  • 避免使用空格

image-20240428172934189

image-20240428173015267

image-20240428173037992

变量类型

  • 字符串变量

    可以使用单引号 或双引号 " 来定义字符串

  • 整数变量

    在一些Shell中,你可以使用 declaretypeset 命令来声明整数变量。

  • 数组变量

    Shell 也支持数组,允许你在一个变量中存储多个值。

    数组可以是整数索引数组或关联数组

  • 环境变量

    由操作系统或用户设置的特殊变量,用于配置 Shell 的行为和影响其执行环境。

  • 特殊变量

    KaTeX parse error: Expected 'EOF', got '#' at position 1: #̲**表示传递给脚本的参数数量,…? 表示上一个命令的退出状态等。

3、Shell 的注释

3.1 单行注释

使用 # 符号开始一个单行注释。# 符号后面的内容直到行尾都会被解释器忽略。

#这是单行注释
3.2 多行注释(块注释)

虽然 Shell 没有专门的多行注释语法,但是你可以使用 # 符号来开始一个多行注释块。这种注释块会一直持续到遇到另一个 # 符号。

# 这是一个多行注释的开始
# 你可以在这里写很多行注释
# 直到再次遇到 #

3.3 Here Document(文档字符串)

Here Document 是一种特殊类型的注释,它可以用于将输入传递给命令。虽然它主要用于输入,但也可以用于创建注释块。

cat <<'EOF'
# 这是一个多行注释的开始
# 你可以在这里写很多行注释
# 直到再次遇到 #
EOF

在编写 Shell 脚本时,建议合理使用注释,以提高代码的可读性和可维护性。注释应该清晰、简洁,并且与代码保持一致。

4、Shell脚本的传参

4…1参数传递机制

Shell 脚本可以通过命令行从外部接收参数。这些参数可以在脚本内部通过 $1$2$3 等特殊变量来访问。这些特殊变量被称为位置参数,它们按顺序存储了传递给脚本的参数值。

在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为 $nn 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数。

例如可以使用 $1、$2 等来引用传递给脚本的参数,其中 $1 表示第一个参数,$2 表示第二个参数,依此类推。

4.2 获取所有参数

可以使用 $@$* 特殊变量来获取所有传递给脚本的参数。

  • $@:表示所有位置参数的列表,每个参数都作为单独的单词处理。
  • $*:与 $@ 类似,但它将所有参数视为一个单词。
4.3 获取参数个数

可以使用 $# 特殊变量来获取传递给脚本的所有参数的个数。

4.4 特殊参数
  • $*$@:用于引用所有位置参数。
  • $#:传递给脚本的所有参数的个数。
  • $?:最后一次命令的退出状态。
  • $$:当前 Shell 进程 ID(PID)。

这些特殊参数在脚本编程中非常有用,尤其是在需要与脚本调用者交互或处理命令行输入时。

4.5 示例

下面是一个简单的 Shell 脚本示例,展示了如何接收和处理参数。

#!/bin/bash

# 打印脚本名称
echo "脚本名称: $0"

# 打印所有参数
echo "所有参数: $@"

# 打印参数个数
echo "参数个数: $#"

# 打印第一个参数
echo "第一个参数: $1"

# 打印第二个参数
echo "第二个参数: $2"

# 打印第三个参数
echo "第三个参数: $3"

image-20240428175553768

4.6 特殊参数示例
#!/bin/bash

# 打印所有参数,使用 $* 和 $@
echo "所有参数: $*"
echo "所有参数: $@"

# 打印参数个数
echo "参数个数: $#"

# 打印上一个命令的退出状态
echo "上一个命令的退出状态: $?"

# 打印当前 Shell 的进程 ID
echo "当前 Shell 的进程 ID: $$"

image-20240428175817351
打印参数个数
echo “参数个数: $#”

打印上一个命令的退出状态

echo “上一个命令的退出状态: $?”

打印当前 Shell 的进程 ID

echo “当前 Shell 的进程 ID: $$”


[外链图片转存中...(img-QsfnqmLy-1714298351395)]
  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值