Shell语言简介
简介:
Shell Script,Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高,毕竟它使用了Linux/Unix下的命令。
换一种说法也就是,shell script是利用shell的功能所写的一个程序,这个程序是使用纯文本本件,将一些shell的语法与指令写在里面,然后用正规表示法,管线命令以及数据流重导向等功能,以达到我们所想要的处理目的。
更明白的来说,shell script就像早期dos年代的.bat,最简单的功能就是将许多指令汇整写一起,让使用者很容易的就能够一个操作执行多个命令,而shell script更是提供了数组,循环,条件以及逻辑判断等重要功能,让使用者可以直接以shell来写程序,而不必使用类似C程序语言等传统程序编写的语法。
shell和shell脚本的区别:
shell是什么呢?确切一点说,Shell就是一个命令行解释器,它的作用就是遵循一定的语法将输入的命令加以解释并传给系统。它为用户提供了一个向Linux发送请求以便运行程序的接口系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。 Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言(就是你所说的shell脚本)。作为命令语言,它互动式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高阶语言中才具有的控制结构,包括循环和分支。它虽然不是 Linux系统内核的一部分,但它调用了系统内核的大部分功能来执行程序、创建文档并以并行的方式协调各个程序的运行。
当命令不在命令行执行时,而是从一个文件中执行时,该文件就称为shell脚本,脚本以非交互方式运行。
当bash shell以非交互方式运行时,它现查环境变量BASH_ENV(ENV),该变量指定了一个环境文件(通常是.bashrc),然后从该文件开始执行。当BASH_ENV文件执行后,shell就开始执行脚本中的命令,shell就开始执行脚本中的命令。bash以非交互方式运行时,
如果带选项-norc或--norc,则不执行BASH_ENV文件。
创建shell脚本的步骤
shell脚本通常是编辑器中编写,由命令和散布其间的注释组成,注释是跟在#号后面的内容,用来对脚本作注解。
第一行
位于脚本左上角第一行会指出要用哪个程序来执行脚本中的行。这一行通常称为sh#行,写作:#!/bin/bash
#!被称为幻数,内核根据它来确定该用哪个程序来翻译脚本中的行。这一行必须是脚本顶端第一行。
注释
注释是跟在#号后的行。
可执行语句与bash shell结构
一个bash shell程序由一组unix命令,bash shell命令,编程结构和注释组成。
使脚本可执行
当你创建文件时,文件并没有被自动授予执行权限,如果要运行脚本就必须给它执行权限。可以用chmod命令来打开脚本的执行权限。
如:chmod +x myscript
下面是一个脚本会话的例子:
#!/bash/bash
#This is the first bash shell program of the day
#scriptname: greetings
echo "hello,$LOGNAME, it's nice talking to you."
echo "your present working directory is $(pwd)."
echo "you are working on a machine called $(uname -n)."
echo "here is a list of your files."
ls
shell最简单脚本echo "bye for now $LOGNAME, The time is $(datea +%T)!"
$chmode u+x greetings
$./greetings
hello,woods2001, it's nice talking to you.
your present working directory is /home/woods2001/Shell/chapter12.
you are working on a machine called woods2001-desktop.
here is a list of your files.
greetings ~
bye for now woods2001, The time is 21:02:24!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论