gpt4 book ai didi

BASH 如果目录包含文件或不包含文件

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

我创建了一个根据条件执行某些命令的脚本。如果目录包含文件然后运行“screen -r”任何其他运行“screen”。问题是即使目录包含文件,屏幕有时也会被执行。

if [ "$(ls -A $DIR)" ]; then
screen -r
else
screen
fi

我想做的是对其进行细化并将其分解为两个语句。如果目录包含文件,则运行 screen-r"& 如果目录不包含文件,则运行 "screen"

if [ "$(ls -A $DIR)" ]; then
screen -r
fi

&

if ["$(directory without files)"] ; then
screen
fi

甚至可能是基于文件数量执行的语句。如果目录包含 X 数量的文件。

有人可以帮我解决这个问题吗?我希望我彻底解释了我想要的东西。

谢谢,

杰弗里

再次感谢您的所有帮助,我现在一切正常。这是最终脚本。它适用于 iPhone 和我正在制作的名为 MobileTerm Backgrounder 的应用程序。

#Sets up terminal environment? 

if [[ $TERM = network || -z $TERM ]]; then
export TERM=linux
fi

# This script automatically runs screen & screen -r (resume) based on a set of conditions.

# Variable DIR (variable could be anything)

DIR="/tmp/screens/S-mobile"

# if /tmp/screens/S-mobile list files then run screen -x

if [ "$(ls -A $DIR)" ]; then
screen -x
fi

#if /tmp/screens/S-mobile contains X amount of files = to 0 then run screen -q

if [ $(ls -A "$DIR" | wc -l) -eq 0 ]; then
screen -q
fi

最佳答案

find 在这里可能会有帮助:

if [[ $(find ${dir} -type f | wc -l) -gt 0 ]];然后回显“确定”; fi

UPD:什么是-gt

man bash -> /-gt/:

   arg1 OP arg2
OP is one of -eq, -ne, -lt, -le, -gt, or -ge. These arithmetic binary operators return true if arg1 is equal to, not
equal to, less than, less than or equal to, greater than, or greater than or equal to arg2, respectively. Arg1 and arg2
may be positive or negative integers.

所以,-gt 是“大于” bool 函数。

关于BASH 如果目录包含文件或不包含文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17766197/

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