gpt4 book ai didi

Bash 将存储的 "boolean"值与什么进行比较?

转载 作者:行者123 更新时间:2023-11-29 09:24:44 24 4
gpt4 key购买 nike

我正在尝试制作一个接受一个参数(一个文件)的程序,然后在 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

最佳答案

使用 $? 特殊的 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 命令的文字输出是一个空字符串,这就是您没有看到任何输出的原因。

关于Bash 将存储的 "boolean"值与什么进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1556660/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com