看到了这个脚本,我试图弄清楚使用了哪种语言...这几乎就像C一样,但是我注意到fi是关闭嵌套if的一种方式。
function prompt () {
if [ "$noprompt" ] && [ "$#" = "1" ]; then
if [ "$1" = "yes" ]; then
echo "DEFAULT: yes"
return 0
else
echo "DEFAULT: no"
return 1
fi
fi
while true; do
echo "Enter \"yes\" or \"no\": "
read response
case $response
in
Y*) return 0 ;;
y*) return 0 ;;
N*) return 1 ;;
n*) return 1 ;;
*)
esac
done
}
最佳答案
这段代码是Unix shell。但是问题的答案
再长一点镜像字的用法(例如if
和fi
或case
和esac
)来自Algol,有关详细信息,请参见comparison of languages。是Stephen Bourne将此内容从Algol传送到Unix shell的,他首先在Algol上工作,后来在早期Unix系统的sh
和adb
上工作。他非常喜欢这种语法,以至于他为C
和sh
编写的adb
代码也看起来像Algol,这要归功于一堆预处理器宏。好奇的人可以看看source code of sh或adb的2.11BSD源代码。毕竟它编译为C。因此,即使在C语言中,回溯很长一段历史,也可以找到FI
。
关于shell - 哪种语言使用 "fi",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6310008/