什么是shell脚本?

时间:2010-07-16 14:46:14

标签: linux shell scripting

shell脚本究竟是什么?

什么是Bash,Korn和Expect?我在Linux终端中使用了一些命令,那个shell脚本也是吗?我再次感到困惑的是shell脚本究竟是什么?

6 个答案:

答案 0 :(得分:10)

您的终端运行shell,可能bash - korn,csh和其他类似的shell具有不同的功能和语法。

虽然您可能主要使用它来运行命令,但大多数shell都是该shell定义的命令语言的解释器。该语言的程序称为shell脚本。有关bash中shell脚本的概述,请参阅this howto

答案 1 :(得分:6)

Shell脚本是创建包含多个shell命令(即lscdgrep等)的文件的过程,而不是可以执行的。

bash和korn都是shell - 它们允许您通过命令行与计算机连接,而不是通过单击图标来运行程序。

shell脚本的目的是自动执行重复性任务,例如设置环境以启动程序,或检查日志文件是否已更改,或归档目录(或目录集)或任何其他数量的任务

查看this out了解详情。

答案 2 :(得分:4)

http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=define:+shell+script

Shell脚本允许您自动执行从命令行执行的任务。

答案 3 :(得分:3)

除了作为交互环境外,shell(无论是原始的Bourne shell(/bin/sh)还是众多替代品(ksh,csh,bash,zsh,tcsh,...)之一,具有不同的或扩展语法)提供编程语言,如功能(循环,条件,函数,变量......)。

Shell脚本或多或少在您喜欢的shell中编写程序

使用shell和脚本之间的界限是模糊的,但是我把它放在“通过编写一些聪明的shell代码来解决一类问题”。

答案 4 :(得分:3)

shell脚本是为操作系统的shell或命令行解释器编写的脚本。它通常被认为是一种简单的特定于域的编程语言。 shell脚本执行的典型操作包括文件操作,程序执行和打印文本。

许多shell脚本解释器兼作命令行界面,例如各种Unix shell,Windows PowerShell或MS-DOS COMMAND.COM。其他的,如AppleScript或图形Windows脚本宿主(WScript.exe),无需命令行界面即可为计算环境添加脚本功能。主要用于shell脚本编程的其他编程语言示例包括DCL和JCL。

答案 5 :(得分:0)

shell允许您创建一个或多个管道进程。

    管道和过滤器主题的一个标志是将工具组合在一起 - 工具是过滤器 - 例如ls,egrep,paste,bc,wc ...... 您也可以创建自己的过滤器/工具 - 并将它们组合起来。

shell定义了使用管道组合过滤器的语法。它还为您提供了一种通过 if keyword - 和循环来测试条件的方法。你也可以编写函数。

   简而言之,您可以编写程序 - 使用大多数工具 - 并创建非常强大的,量身定制的功能来满足您的需求 - 非常快。这是脚本 - 以富有成效的方式将现有工具组合并重用为脚本

例如,考虑管道
    % seq 100 | paste -s -d '*'
1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * 10 ... 98 * 99 * 100

编写 seq 过滤器的人不会像上面那样使用想象的 seq seq 程序本身很简单。这种任意连接 seq 粘贴(或其他一些过滤工具)的能力 - 使其成为一个非常强大的概念。

例如,考虑管道
    % seq 100 | paste -s -d '*' | bc
93326215443944152681699 ...
 它采用表达式(如上所述) - 并将其提供给 bc - 另一个过滤器 - bc 评估乘法表达式。

简而言之, shell脚本允许您组合/重用现有工具 - 使用流控制机制,如if,while ...来创建非常强大的程序在很短的时间内。