发布网友 发布时间:2022-04-21 00:48
共5个回答
热心网友 时间:2022-06-16 20:42
题主你好,
前提: 我们知道每个进程运行后,系统都会分配给其一个id号,这个id号和进程是关联的,我们可以通过操作该id来实现操作对应进程的目的,如通过id杀死进程等.
$!很多人解释为后台运行的最后一个进程的id号(我觉得解释为最近一次后台运行的id号更容易理解). 举个例子说一下吧,这样更直观一点.
我们先准备一个简单的脚本1.sh, 里面内容很简单,就是睡眠100秒:
下面我们在后台运行这个脚本,看一下$!的输出结果:
从上图可以看出, 脚本运行后,系统分配给它的进程id是54821, 后面我们连续输出三次$!,得到的结果是一样的,都是54821. 因为1.sh这个脚本就是我们最近一次后台运行的脚本,所以此时无论输出多少次$!结果都是一样的.
-----
接下来, 我们再运行一个内容同1.sh相同的2.sh:
可以看到, $!的输出结果变为了54860,不再是上面的54821. 因为此时2.sh是我们最近一次后台运行的脚本,因此,$!结果变为了54860.
=====
希望可以帮到题主, 欢迎追问.
热心网友 时间:2022-06-16 20:42
1.显示脚本参数($0、$?、$*、$@、$#、$$、$!)(本质上属于变量替换)
2. 获取变量与环境变量的值,查询命令《Linux就该这么学》
热心网友 时间:2022-06-16 20:43
有两种作用:
(1) [redhat@station5 ~]$ 此处是指普通用户的提示符,root为#。
(2) 在脚本中是指申明变量
热心网友 时间:2022-06-16 20:43
有两种解释:
(1) [redhat@station5 ~]$ 此处是指普通用户的提示符,root为#
(2) 在脚本中是指申明变量,如:
#!/bin/bash
for ip in $( seq 1 254) (此处是申明数字变化范围1到254)
do
ping -c1 -w1 192.168.0.$ip &>/dev/null && echo station$ip is up || echo station$ip is down | grep up
done 命令介绍请查看'linux命令大全'
热心网友 时间:2022-06-16 20:44
有两种解释:
(1)[redhat@station5~]$此处是指普通用户的提示符,root为#
(2)在脚本中是指申明变量,如:
#!/bin/bash
foripin$(seq1254)(此处是申明数字变化范围1到254)
do
ping-c1-w1192.168.0.$ip&>/dev/null&&echostation$ipisup、、echostation$ipisdown、grepup
done