shell $ 用法

Shell脚本中$符号的几种用法小结_linux shell_脚本之家

Shell 传递参数 | 菜鸟教程

$ 符号说明
$0Shell 的命令本身
1到9表示 Shell 的第几个参数
$?显示最后命令的执行情况
$#传递到脚本的参数个数
$$脚本运行的当前进程 ID 号
$*以一个单字符串显示所有向脚本传递的参数
$!后台运行的最后一个进程的 ID 号
$-显示 Shell 使用的当前选项

使用 $? 上条命令的返回值。
0:表示没有错误,其他任何数值:表示有错误。

[root@localhost ~]# true 1024
[root@localhost ~]# echo $?
0
[root@localhost ~]# false 2048
[root@localhost ~]# echo $?
1

### Shell 特殊变量 `$!` 的含义及用法Linux Shell 中,特殊变量 `$!` 表示最近一个后台运行进程的 PID(Process ID)。当某个命令被放到后台执行时,Shell 会自动记录该命令对应的进程号,并将其存储到 `$!` 中以便后续使用[^2]。 以下是关于 `$!` 的一些具体说明: - 如果用户希望获取刚刚启动的后台任务的进程编号,则可以通过访问 `$!` 来实现。 - 此外,利用此特性可以帮助编写更复杂的脚本来管理和监控这些后台作业的状态或行为。 #### 示例代码展示如何使用 `$!` 下面提供了一个简单的例子来演示 `$!` 的实际应用情况: ```bash #!/bin/bash # 启动一个长时间运行的任务作为后台进程 sleep 60 & # 获取刚创建好的后台进程ID bg_pid=$! echo "Background job's PID is $bg_pid" # 使用ps命令查看对应PID是否存在 if ps -p $bg_pid > /dev/null; then echo "The background process with PID $bg_pid is still running." else echo "The background process has finished or does not exist anymore." fi ``` 上述脚本首先将 `sleep 60` 放入后台执行,接着立即读取其进程号存入变量 `bg_pid` 中用于进一步操作。最后通过检查指定的 PID 是否仍然存在判断该背景工作是否完成。 #### 注意事项 需要注意的是只有真正进入后台模式下的程序才会更新 `$!` 值;如果只是简单地让前台指令异步结束而未显式加 `&` 符号放入后台的话是不会影响这个值变化的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值