我的问题是我必须检查$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
感谢您的帮助!
答案 0 :(得分:0)
您可以将上面的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