什么是shell脚本程序 一、Shell脚本建立
一、Shell脚本建立1. 什么是shell
Shell是一个命令解释器,它在操作系统的最外层负责直接与用户对话,把用户的输入解释给操作系统,并且处理操作系统的输出结果,输出到屏幕给用户。这种对话方式可以是交互方式或者非交互式(脚本)的。
2. 什么是Shell脚本
当Linux命令或者语句不在命令行下执行,而是通过一个程序文件执行时,该程序就被称为shell脚本。用户在shell脚本中写入一系列的命令语句组合,并且将这些命令、变量和流程控制语句有机的组合在一起就形成了一个功能强大shell脚本。
3. Shell脚本的建立
在Linux中Shell脚本通常是在编辑器(vi/vim)中编写的,脚本的第一行会指出由哪一个解释器来执行脚本中的内容,比如:
#! /bin/bash
#
# network Bring up/down networking
#
...
脚本中开头的"#!"被称为幻数,在执行bash脚本时,内核会根据“#!”后的解释器来确定使用何种解释器来解释脚本的内容。值得注意的是这一行必须顶行来写。另外有时在脚本中会看到顶行的解释器写的是/bin/sh,这与/bin/bash有什么区别呢?
[root@localhost init.d]# ll /bin/sh
lrwxrwxrwx. 1 root root 4 Oct 1 14:27 /bin/sh -> bash
可以看到/bin/sh是/bin/bash的软链接,没什么区别,不过一般系统自带的shell脚本使用/bin/bash,用户自定义的一般指定/bin/sh。假如脚本中不指定解释器的话(第一行省略)就会使用系统默认的解释器,也就是bash,不过最好还是自己写上,比较符合规范。 另外就是shell中使用"#"进行注释,"#"后面的内容不会被解释器执行,只是单纯的注释什么是shell脚本程序卡盟,方便开发人员与自己查看功能说明,注释内容可以单起一行,也可以写在脚本后面。
2. 规范二、Shell脚本执行
当shell脚本以非交互式的方式运行时,它会先查找环境变量ENV,该变量指定了一个环境文件(比如.bashrc、.bash_profile、/etc/profile等)什么是shell脚本程序,然后从该环境变量文件开始回字形,当读取了ENV文件后,shell才开始执行shell脚本中的内容。 shell脚本的执行通常有以下三种方式: - bash test.sh 或 sh test.sh - ./test.sh(当前路径执行脚本) - source test.sh 或. test.sh
第一种方式是脚本文件本身没有可执行权限时常使用的方法,推荐使用bash执行;第二种方式需要将脚本文件的权限改为可执行(chmod u+x test.sh),然后通过脚本路径就可以执行脚本了;第三种方式是使用source或者"."点号加载sehll脚本文件,该方式可以将脚本中变量或者函数导出到当前环境中进行调用。
# 使用source或者"."可以将脚本中的变量获取,但是如果使用其它两种方式,
# 脚本一旦执行完毕后获取不到变量
[root@localhost project]# echo 'user=`whoami`' > test.sh
[root@localhost project]# . test.sh
[root@localhost project]# echo $user
root
但是如果使用其它两种执行方式是没有这种效果的:
# 输出为空
[root@localhost project]# echo 'user=`whoami`' > test.sh
[root@localhost project]# /bin/sh test.sh
[root@localhost project]# echo $user
...
来源:【九爱网址导航www.fuzhukm.com】 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!