gpt4 book ai didi

linux - 使用 ls 命令会导致循环

转载 作者:太空宇宙 更新时间:2023-11-04 05:59:48 25 4
gpt4 key购买 nike

我想在循环中使用 ls 命令的结果来检查例如第一行是否是目录,第二行等。例如,我有一个文件夹,其中包含脚本应显示的一个目录:

18_05_2018 is directory

enter image description here

最佳答案

创建一个名为 is_file_or_directory.sh 的文件,其中包含:

cd "$1" || echo "Please specify a path" && exit
for i in *; do
if [[ -d $i ]]; then
echo "$i is a directory"
elif [[ -f $i ]]; then
echo "$i is a file"
else
echo "$i is not valid"
exit 1
fi
done

使该文件可执行:

sudo chmod +x is_file_or_directory.sh

运行脚本,指定要分析的路径作为参数:

./is_file_or_directory.sh /root/scripts/

输出:

jeeves ~/scripts/stack # ./is_file_or_dir.sh /root/scripts/
databe.py is a file
is_file_or_dir.sh is a file
mysql_flask.py is a file
test is a directory

这是对幕后发生的事情的更详细解释。在 Bash 中,变量 $1 是发送到脚本的第一个参数。在我们的例子中,它是脚本执行其操作的路径。然后我们在循环中使用变量$i。

$i 内容将是路径 $1 中的每个文件/文件夹名称。使用 -d 和 -f 我们检查 $i 是文件还是文件夹。

关于linux - 使用 ls 命令会导致循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50417724/

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