当前位置:  开发笔记 > 编程语言 > 正文

Bash比较存储的"布尔"值与什么?

如何解决《Bash比较存储的"布尔"值与什么?》经验,为你挑选了1个好方法。

我正在尝试创建一个接受一个参数,一个文件的程序,然后在60秒后检查文件发生了什么.为此,我需要将结果存储-e $1在变量中,然后在60秒后检查它.我似乎无法让if表达听我说,我知道这是错的.出于测试目的,此脚本会立即打印出比较结果.期待这个工作的样本,我不知道我对这个小程序做了多少版本.谢谢!明天到期,非常感谢任何帮助!

#!/bin/bash
onStartup=$(test -e $1) 
if [ -e "$1" ]; then
    unixtid1=$(date  +"%s" -r "$1") #To check if the file was edited. 
    echo $unixtid1
fi
sleep 3

#Here trying to be able to compare the boolean value stored in the
#start of the script. True/False or 1 or 0? Now, both is actually printed. 
if [[ $onStartup=1 ]]; then
    echo "Exists"
fi

if [[ $onStartup=0 ]]; then
    echo "Does not exists"
fi

Alexander Po.. 5

使用$?特殊的shell变量来获取命令的结果.记住0手段的返回值true.这是修改后的脚本

#!/bin/bash
test -e $1
onStartup=$?

if [ $onStartup -eq 0 ]; then
unixtid1=$(date  +"%s" -r "$1") #To check if the file was edited. 
echo $unixtid1
fi
sleep 3

#Here trying to be able to compare the boolean value stored in the
#start of the script. True/False or 1 or 0?
if [[ $onStartup -eq 0 ]]; then
echo "Exists"
else
echo "Does not exists"
fi

您的原始示例尝试test在onStartup变量中存储命令的文字输出.该test命令的文字输出是一个空字符串,这就是为什么你没有看到任何输出.



1> Alexander Po..:

使用$?特殊的shell变量来获取命令的结果.记住0手段的返回值true.这是修改后的脚本

#!/bin/bash
test -e $1
onStartup=$?

if [ $onStartup -eq 0 ]; then
unixtid1=$(date  +"%s" -r "$1") #To check if the file was edited. 
echo $unixtid1
fi
sleep 3

#Here trying to be able to compare the boolean value stored in the
#start of the script. True/False or 1 or 0?
if [[ $onStartup -eq 0 ]]; then
echo "Exists"
else
echo "Does not exists"
fi

您的原始示例尝试test在onStartup变量中存储命令的文字输出.该test命令的文字输出是一个空字符串,这就是为什么你没有看到任何输出.

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有