Bash脚本和比较2个目录 - 初学者

时间:2015-07-24 11:02:33

标签: linux bash shell scripting git-bash

我的问题是我必须检查$directory中包含哪些文件,然后我必须创建一个名称由我指定的新文件,并比较该名称是否已经存在于此目录(比较2个目录)。

以下是我的代码:

directory=$(pwd -L "/$nameProject")
read -p "Enter repo name: " nameRepo

# Check if repo name exists in $directory

if [$(find "$directory/$nameProject" -path "$directory/$nameProject/*")==$("$directory/$nameProject/$nameRepo")]; then
    instruction..
fi

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

你尝试过吗? 如果[[! -d“$ directory / $ nameProject / $ nameRepo”&& ! -f“$ directory / $ nameProject / $ nameRepo”]];然后     mkdir“$ directory / $ nameProject / $ nameRepo” 网络

您可以将上面的if循环拆分为两个并通过删除打印相应的错误!

答案 1 :(得分:0)

空间对shell很重要。引用也是如此。您需要[==以及]周围的空格(尽管];可以)。 (从技术上讲,比较运算符为=而不是==。)。

同样find可以返回多个结果,这会导致测试出现问题。

如果您想测试具有给定名称的目录(或文件)是否存在,那么您不需要(或想要)使用find。您可以直接使用-d测试二进制文件/内置的-f-e(和[)测试spec,{ {3}})

if [ -d path/to/directory ]; then
    echo "Was a directory"
else
    echo "Was not a directory"
fi