Geo*_*e H 2 bash scripting zsh
我有以下简单的zsh功能:
function remember()
{
if [ "$1" != "" ]
then
if[ "$1" != "clean" ]
then
echo "Why";
#echo $1 >> {~/.remember_info};
else
rm -r ~/.remember_info;
touch ~/.remember_info;
fi
else
cat .remember_info;
fi
}
Run Code Online (Sandbox Code Playgroud)
当我尝试采购它时,我得到:
`echo'附近的解析错误(回声是回声"为什么"的行;)
这个错误是非描述性的,我认为它与循环逻辑的一部分有关(因为无论我在那之后给出什么指令,它都会出错).
有没有办法"调试"这种东西?zsh -n没有多大帮助(根本)
你忘记了比较之间if和之间的空间.[clean
但是,通过=首先处理案例可以使您的功能变得更简单.
function remember()
{
if [ "$1" = "" ]; then
cat ~/.remember_info
elif [ "$1" = clean ]; then
rm -r ~/.remember_info
touch ~/.remember_info
else
echo "$1" >> ~/.remember_info;
fi
}
Run Code Online (Sandbox Code Playgroud)
或者,使用case声明.
remember () {
f=~/.remember_info
case $1 of
"")
cat "$f"
;;
clean)
rm -r "$f"
touch "$f"
;;
*)
print "$1" >> "$f"
;;
esac
}
Run Code Online (Sandbox Code Playgroud)