我如何在 bash 脚本中获得 运行 的进程 pid 并知道它何时完成
How would i get a process pid which is running in a bash script and know when its done
我需要知道另一个进程 pid,它在 bash 脚本中作为命令执行,例如 nmap 扫描等,当创建进程时,我可以显示一个条形图或一个微调框
#!/bin/sh
G='3[0;32m'
B='3[0m'
${G}Enter IP TAIL LIKE 0.1 OR 1.1${B}"
read v
${G}ENTER Device NAME ${B}"
read k
nmap -A -Pn -sV 192.168.$v -oN /tmp/op
//here i want a while loop for displaying a spinner
编辑代码已更新Thts the code in case tht was not visible properly ^^
当 pid 在完成时死亡,我可以将它用作计数或标志或类似的东西来结束微调器。
我正在开发 Kali nethunter。
P.S这是我第一次遇到堆栈溢出问题,如果它太愚蠢请原谅我,或者如果我错过了什么请告诉我。
起点:
#!/bin/bash
echo "Enter IP:"
read -r ip
# `&` runs in parallel
# always quote variables
nmap "$ip" &
# `$!` get's the background process PID
pid=$!
...
# you can see if a pid is running by checking exit status of `kill -0`
while kill -0 "$pid" 2>&1 >/dev/null; do
printf ...
...
done
nmap -A -Pn -sV 192.168.0.1 -p -oN /tmp/op >/dev/null & pid=$!
i=1
sp="/-\|"
echo -n ' '
while kill -0 "$pid" 2>&1 >/dev/null;
do
printf "\b${sp:i++%${#sp}:1}"
done
*感谢 * kamil cuk
解决了问题
我需要知道另一个进程 pid,它在 bash 脚本中作为命令执行,例如 nmap 扫描等,当创建进程时,我可以显示一个条形图或一个微调框
#!/bin/sh
G='3[0;32m'
B='3[0m'
${G}Enter IP TAIL LIKE 0.1 OR 1.1${B}"
read v
${G}ENTER Device NAME ${B}"
read k
nmap -A -Pn -sV 192.168.$v -oN /tmp/op
//here i want a while loop for displaying a spinner
编辑代码已更新Thts the code in case tht was not visible properly ^^ 当 pid 在完成时死亡,我可以将它用作计数或标志或类似的东西来结束微调器。 我正在开发 Kali nethunter。
P.S这是我第一次遇到堆栈溢出问题,如果它太愚蠢请原谅我,或者如果我错过了什么请告诉我。
起点:
#!/bin/bash
echo "Enter IP:"
read -r ip
# `&` runs in parallel
# always quote variables
nmap "$ip" &
# `$!` get's the background process PID
pid=$!
...
# you can see if a pid is running by checking exit status of `kill -0`
while kill -0 "$pid" 2>&1 >/dev/null; do
printf ...
...
done
nmap -A -Pn -sV 192.168.0.1 -p -oN /tmp/op >/dev/null & pid=$!
i=1
sp="/-\|"
echo -n ' '
while kill -0 "$pid" 2>&1 >/dev/null;
do
printf "\b${sp:i++%${#sp}:1}"
done
*感谢 * kamil cuk
解决了问题