这是我在UNIX中的第一个问题:
我两天前就开始使用shell脚本了。
但是我有一个问题: shell脚本是特定shell的特殊编程语言吗?
发布于 2012-11-04 20:40:59
如果您知道任何命令,例如,ls,键入它,然后按返回,shell将知道程序(ls)在哪里,调用它,并向您显示结果。这是“非脚本”shell用法。
但是,如果你在一个序列中订购了几个这样的命令,比如A,B,C,D,然后把它(序列)放在一个可执行文件中,那么你就有了一个程序。程序有一个名称和位置,所以它可以被引用和调用;它有代码,所以它可以由CPU一次执行一个命令。
(程序不是编译的--例如C源应该是这样的--这使它成为一个脚本。但这仍然是一个计划。)
也就是说,在某些方面,你已经在编程了,因为你在指导计算机该怎么做。
此外,您还处于非常基本的级别,也使用编程语言,因为您不能只键入任何内容(并期望它工作);同时,无论您键入什么,您都会从计算机中获得与您所写内容完全对应的活动。
你应该怎么说,电脑对这些事情的反应是有规则的。
尽管如此,与“编程”相比,您通常会联想到更多的表达能力,而不仅仅是将命令堆在一起。至少,您希望分支(if ... then ... else)、迭代(循环:while、for等),以及其他一些东西。但是,这是可以的,因为脚本语言有这些东西和更多。
是的,shell有不同的语言,但有些语言可能会在很大程度上由于约定而重叠(为什么要改变一种很好的表达方式?),或者与早期版本(或某些标准)兼容。
发布于 2012-11-04 21:21:09
Bash是一种scripting语言:
来自维基百科:
脚本语言或脚本语言是一种编程语言,它支持编写脚本,为自动执行任务的软件环境编写的程序,这些任务可以由人工操作员一个接一个地执行。...脚本这个术语通常是为小型程序保留的(多达几千行代码)。
脚本通常是快速和肮脏的。比如说,一个让你的生活更轻松的剧本。而“编程”语言意味着要考虑得更多,而deliberate.The与“编程”语言的区别在于,它们通常速度更快,如果您愿意的话,可以对低级别的事情提供更多的控制。
“编程”语言通常用于代码将存在很长时间的场景中。如果您想要快速地编写一些东西,然后不再使用它,那么“脚本”语言就是您想要的。
您可以找到一篇有趣的文章这里。
https://unix.stackexchange.com/questions/53839
复制相似问题