当我top
在linux终端中运行时,我有:
1147 root 20 0 1227548 34604 5784 S 1,7 0,9 1:10.88 dockerd
Run Code Online (Sandbox Code Playgroud)
我怎么能永久杀死它?我知道我可以通过linux手动杀死它kill
,但是下次使用计算机的工作dockerd
将再次显示.
虽然使用`set -u`在Bash空数组扩展中建议的解决方案对我来说很有用,但最近发布的数据处理(2016/09/16)bash 4.4(例如在Debian stretch中可用)已经改变了.
$ bash --version | head -n1
bash --version | head -n1
GNU bash, version 4.4.0(1)-release (x86_64-pc-linux-gnu)
Run Code Online (Sandbox Code Playgroud)
现在空数组扩展不会发出警告
$ set -u
$ arr=()
$ echo "${arr[@]}"
$ # everything is fine
Run Code Online (Sandbox Code Playgroud)
相关问题中提出的解决方案因bash-4.4而失败:
$ set -u
$ arr2=()
$ arr2=( ${arr2[@] + "${arr2[@]}"} 'foo' )
bash: ${arr2[@] + "$arr2[@]"}: bad substitution
Run Code Online (Sandbox Code Playgroud)
有没有人对(或多或少)版本无关的解决方案提出建议而无需额外检查数组长度或bash版本?我还在调查最近的bash变化
编辑
由于我最初的问题似乎有些令人困惑,所以这里是我试图实现的目标的澄清.测试脚本:
#!/usr/bin/env bash
set -euo pipefail
bash --version | head -n1
arr=()
# some external environment variables are set / command …
Run Code Online (Sandbox Code Playgroud)