检查条件并在bash中运行命令



检查条件后,我需要运行一系列命令。我试过这个

#var1 results in output active or inactive
var1= systemctl is-active docker

#Function for enabling and running the docker service
function run {
echo "Starting Docker service.."
sudo systemctl enable docker
sudo systemctl start docker
mkdir /mnt/new/hello_test
}
# Checking whether the docker service is up or not
if [[ $var1 -eq inactive ]]
then
echo "$(run)"
else
echo "Docker service is  running..." ; touch /mnt/new/testingg;
fi

在这个脚本中,它只检查第一个条件。我将不胜感激。谢谢

在这个脚本中,它只检查第一个条件

因为-eq代表数字。两边CCD_ 2都被转换成数字。因为它们不是数字,而是字符串activeinactive,所以它们被解释为变量名,并且因为这些变量没有定义,所以两边都等于零。

但忘了它,只需执行if:中的实际命令

run() {
echo "Starting Docker service.."
sudo systemctl enable docker
sudo systemctl start docker
mkdir /mnt/new/hello_test
}
if ! systemctl is-active -q docker; then
run
else
echo "Docker service is  running..."
touch /mnt/new/testingg;
fi

无论如何,要比较字符串,请使用=:

[[ "stringone" = "stringsecond" ]]
# like:
var1=$(systemctl is-active docker)
[[ "$var1" = "inactive" ]]

相关内容

  • 没有找到相关文章

最新更新