Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
bash:在while循环中抑制kill消息_Bash - Fatal编程技术网

bash:在while循环中抑制kill消息

bash:在while循环中抑制kill消息,bash,Bash,我有一个进度条,它在等待外部程序完成执行时打印点。当它真的结束时,我得到一个丑陋的杀戮信息,我想压制它 #!/bin/bash program < input.file.1 > output.1 & sim='running simulation' echo -ne $sim >&2 while kill -0 $!; do echo -n . >&2 sleep 1 done #/bin/bash 程序输出.

我有一个进度条,它在等待外部程序完成执行时打印点。当它真的结束时,我得到一个丑陋的杀戮信息,我想压制它

#!/bin/bash
program < input.file.1 > output.1 &

sim='running simulation'

echo -ne $sim >&2

while kill -0 $!; do

       echo -n . >&2
       sleep 1
done
#/bin/bash
程序输出.1&
sim='running simulation'
echo-ne$sim>&2
而杀戮-0$!;做
回声-n.>&2.
睡眠1
完成
预期:运行模拟

实际:运行模拟……../run_with_dots.1:第8行:kill:(11872)-没有这样的进程

while kill -0 $! 2> /dev/null; do

顺便说一句,
printf.
echo-n.
更便于携带;定义了
echo-n
实现的行为,并且当
posix
xpg_echo
运行时标志在bash中都处于活动状态时,
echo-n
在输出时发出
-n
和换行符。类似地,
printf'%b'$sim
echo-ne$sim
更健壮(更重要的是,由于
echo-e
不仅是实现定义的,而且还被禁止在输出上按标准的字母打印
-e
;这是bash默认的开箱即用行为主动打破标准而不是扩展标准的少数几个地方之一——但同样,在这一点上如果设置了适当的运行时标志,该行为就会消失,
echo-ne
停止工作……或者,按照标准的规定,开始正常工作)。