shell - 什么语言使用 "fi"

标签 shell

看到这个脚本,我试图弄清楚使用的是什么语言......它几乎就像 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。但问题的答案

what language uses “fi”



有点长。镜像词的用法,如 ifficaseesac来自 Algol,一个很好的总结见 comparison of languages .它是 Stephen Bourne他把这个从 Algol 带到了 Unix shell,他首先在 Algol 上工作,后来在 shadb早期的 Unix 系统。他非常喜欢这种语法,甚至 C他为 sh 编写的代码和 adb由于一堆预处理器宏,看起来像 Algol。好奇的可以看看source code of sh的2.11BSD源代码或 adb .毕竟它编译为C。所以即使在 C 中也可以找到 FI当回溯到很远的历史时。

关于shell - 什么语言使用 "fi",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6310008/

相关文章:

shell - 使用 tcpdump 从命令行读取捕获的数据包

c - 在 C 中处理管道以创建 shell

bash - 有没有办法检查 bash 脚本是否完整?

Bash命令行和输入限制

bash - Shell 脚本未通过 crontab 运行,但手动运行良好

regex - 如何匹配直到最后一次出现 bash shell 中的字符

json - 使用 bash 读取 package.json 文件的 name 属性

ruby - Runy Open3.popen3 从命令行输入子进程

mysql - 如何在 Windows 中使用命令提示符从服务器下载 mysql 数据库

内核 IP 路由表的 PHP 接口(interface)