如何在 bash 脚本中检查传递的参数是文件还是目录?

如何在 bash 脚本中检查传递的参数是文件还是目录?

我必须在 Ubuntu 中编写一个简单的 bash 脚本,以便我向其传递一些参数,并且我想检查这些可以包含空格的参数是文件还是目录。我该怎么做?

答案1

示例脚本:

#!/bin/bash
# This is a simple demo script
# It takes 3 parameters and checks if they are files or directories

echo "Welcome to my script"

if [[ -f "$1" || -d "$1" ]]
then
    echo "The First argument is a file or directory"
fi

if [[ -f "$2" || -d "$2" ]]
then
    echo "The second argument is a file or directory"
fi

if [[ -f "$3" || -d "$3" ]]
then
    echo "The third argument is a file or directory"
fi

echo "Bye!"

示例场景

我将脚本保存为~/script.sh并执行chmod +x script.sh

karimov-danil@Karimov-Danil:~$ ./script.sh “Шаб лоны” “Обще доступные” “ta lk”
欢迎阅读我的脚本
第一个参数是文件或目录
第二个参数是文件或目录
第三个参数是文件或目录
再见!

注意:您应该在双引号内传递参数。

相关内容