我试图找出是否有一个屏幕正在运行与功能。为了使它更简单,我写了一个小测试脚本:
#! /bin/bash
function status()
{
if [ $a==1 ]
then
echo 1
else
echo 0
fi
}
a=1
echo $(status)
a=0
echo $(status)
status
if [ $(status)==0 ]
then
echo "Success"
else
echo "Fail"
fi
输出为:1; 1;成功
但它应该是:1; 0;成功
我做错了什么?
非常感谢,chrys
答案 0 :(得分:1)
您需要==
所以:if [ $a==1 ]
应该是:
if [ "$a" == 1 ]
和
if [ $(status) == 0 ]
答案 1 :(得分:0)
试试这个:
删除==周围的空格,包含引号并删除状态调用
#! /bin/bash
function status()
{
if [ $a == '1' ]
then
echo 1
else
echo 0
fi
}
a=1
echo $(status)
a=0
echo $(status)
if [ $(status) == '0' ]
then
echo "Success"
else
echo "Fail"
fi