Day5.2 Shell编程教程 - 特殊变量表达式参数

发布时间 2023-07-28 11:24:15作者: 景然的BLOG

1. 特殊变量表达式参数`$0``$n``$#``$*``$@``$?``$$``$!`2. 示例脚本示例脚本 - `special_variables.sh`3. 执行示例脚本4. 结论大树哥个人信息

在Shell脚本中,特殊变量提供了对脚本执行过程和执行环境的访问。它们帮助我们在脚本中获取脚本自身的名称、获取命令行参数以及处理其他重要信息。本教程将向你介绍Shell脚本中的特殊变量表达式参数的使用。

1. 特殊变量表达式参数

Shell脚本中的特殊变量表达式参数用于访问脚本的执行环境和传递给脚本的参数。

`$0`

$0表示当前脚本的名称。

`$n`

$n表示脚本的第n个参数,n是一个正整数。

`$#`

$#表示传递给脚本的参数个数。

`$*`

$*将所有传递给脚本的参数作为一个单词保存,参数之间用空格分隔。

`$@`

$@将所有传递给脚本的参数作为一个独立的单词保存。

`$?`

$?表示上一个命令的退出状态。

`$$`

$$表示当前脚本的进程ID。

`$!`

$!表示最近在后台运行的命令的进程ID。

2. 示例脚本

示例脚本 - `special_variables.sh`

 1#!/bin/bash
2

3# Shell脚本特殊变量表达式参数示例
4# 作者:大树哥
5
6# $0:脚本名称
7echo "当前脚本名称:$0"
8
9# $1、$2等:脚本参数
10echo "第一个参数:$1"
11echo "第二个参数:$2"
12
13# $#:参数个数
14echo "参数个数:$#"
15
16# $*:将所有参数作为单词保存
17echo "所有参数(作为单词):$*"
18
19# $@:将所有参数作为独立的单词保存
20echo "所有参数(独立单词):$@"
21
22# $?:上一个命令的退出状态
23ls /non_existent_directory
24if [ $? -ne 0 ]; then
25  echo "上一个命令执行失败"
26else
27  echo "上一个命令执行成功"
28fi
29
30# $$:当前脚本的进程ID
31echo "当前脚本进程ID:$$"
32
33# $!:最近在后台运行的命令的进程ID
34sleep 10 &
35echo "最近在后台运行的命令的进程ID:$!"

3. 执行示例脚本

在执行示例脚本之前,确保你拥有执行权限。如果没有,使用以下命令赋予执行权限:

1chmod +x special_variables.sh

然后,你可以运行这个示例脚本:

1./special_variables.sh arg1 arg2

请注意,这里我们传递了两个参数(arg1和arg2)给脚本,你可以根据需要修改或添加更多参数。

4. 结论

通过本教程,我们学习了Shell脚本中特殊变量表达式参数的使用。我们了解了如何获取脚本名称、获取命令行参数、获取参数个数,以及如何处理其他重要信息。这些特殊变量在Shell脚本编程中非常有用,它们帮助我们处理脚本的执行过程和执行环境。希望本教程对你有所帮助,继续学习和探索Shell编程,运维效率提高不止10倍!

大树哥个人信息

  • 网名:大树哥
  • 8年以上数据库中间件经验,专注于数据库中间件运维,Oracle、MySQL、Weblogic、WebSphere、Tomcat、Nginx等;
  • Oracle 19c OCP,软考数据系统工程师,系统规划与管理师高级等认证
  • 微信公众号: AI智能提效开发运维