【发布时间】:2021-10-04 13:34:07
【问题描述】:
我正在尝试在 bash 中创建一个函数:
check_for_file()
{
if [ $1 = '' ]; then
local testing_file = myproject
elif
local testing_file = $1
fi
if [ -d testing_file ]; then
echo "Directory name already exists"
exit
elif
mkdir -p testing_file/{archive,backups,docs/html,docs/txt,assets,database,src/sh,src/c}
fi
return
}
但是当我运行它时,我得到以下输出:
./mkproj.sh:第 10 行:意外标记附近的语法错误 fi' ./mkproj.sh: line 10: fi'
你知道我做错了什么吗?谢谢!
【问题讨论】:
-
elif需要附加条件。你只想要else。 -
顺便说一句,它是
mkdir -p "$testing_file"/...。您当前没有将变量扩展为供mkdir使用的值。 -
正如 chepner 所说,
elif中的条件缺失,但是您还需要一个then。请参阅 bash 手册页,其中将if语句描述为:if list; then list; [ elif list; then list; ] ... [ else list; ] fi。
标签: bash unix conditional-statements