创建一个script,Linux shell脚本

创建一个script,Linux shell脚本,第1张

和C语言类似,在Shell中用if、then、elif、else、fi这几条命令实现分支控制。这种流程控制语句本质上也是由若干条Shell命令组成的,例如先前讲过的

if [ -f ~/.bashrc ]then

~/.bashrc

fi

其实是三条命令,if [ -f ~/.bashrc

]是第一条,then .

~/.bashrc是第二条,fi是第三条。如果两条命令写在同一行则需要用号隔开,一行只写一条命令就不需要写号了,另外,then后面有换行,但这条命令没写完,Shell会自动续行,把下一行接在then后面当作一条命令处理。和[命令一样,要注意命令和各参数之间必须用空格隔开。if命令的参数组成一条子命令,如果该子命令的Exit Status为0(表示真),则执行then后面的子命令,如果Exit Status非0(表示假),则执行elif、else或者fi后面的子命令。if后面的子命令通常是测试命令,但也可以是其它命令。Shell脚本没有{}括号,所以用fi表示if语句块的结束。见下例:

#! /bin/sh

if [ -f /bin/bash ]

then echo "/bin/bash is a file"

else echo "/bin/bash is NOT a file"

fi

if :then echo "always true"fi

:是一个特殊的命令,称为空命令,该命令不做任何事,但Exit Status总是真。此外,也可以执行/bin/true或/bin/false得到真或假的Exit Status。再看一个例子:

#! /bin/sh

echo "Is it morning? Please answer yes or no."

read YES_OR_NO

if [ "$YES_OR_NO" = "yes" ]then

echo "Good morning!"

elif [ "$YES_OR_NO" = "no" ]then

echo "Good afternoon!"

else

echo "Sorry, $YES_OR_NO not recognized. Enter yes or no."

exit 1

fi

exit 0

上例中的read命令的作用是等待用户输入一行字符串,将该字符串存到一个Shell变量中。

此外,Shell还提供了&&和||语法,和C语言类似,具有Short-circuit特性,很多Shell脚本喜欢写成这样:

test "$(whoami)" != 'root' &&(echo you are using a non-privileged accountexit 1)

&&相当于“if...then...”,而||相当于“if not...then...”。&&和||用于连接两个命令,而上面讲的-a和-o仅用于在测试表达式中连接两个测试条件,要注意它们的区别,例如,

test "$VAR" -gt 1 -a "$VAR" -lt 3

和以下写法是等价的

test "$VAR" -gt 1 &&test "$VAR" -lt 3

Shell通常比喻是人与计算机硬件的“翻译官”,Shell作为用户与Linux系统通讯的媒介,自身也定义了各种变量与参数,并提供了诸如循环、分支等高级语言才有的控制结构特性。如何正确的使用这些功能,准确下达命令就显得尤为重要。

Shell的工作形式分为两种

1.交互式(Interactive):用户输入一条命令,Shell解释并执行一条。

2.批处理(Batch):用户事先编写一个Shell脚本(Script),其中包含诸多命令,Shell会一次执行完所有命令。

编译简单的脚本

Shell脚本的编写要使用到Vim文本编辑器,按照命令的执行顺序依次编写,每行写一条Linux命令。并且一个完整的Shell脚本则应该包括“脚本声明”、“注释信息”和“可执行语句”。

编写脚步的规范:

脚本声明(#!):告知系统用何种shell来解释。

注释信息(#):对可执行语句或程序功能做介绍,可以不写。

可执行语句:执行的具体命令。

编写一个简单的Shell脚本吧,功能是显示当前的工作路径并列出当前目录下的所有文件与属性。

12345

[root@linuxprobe ~]# vim Example.sh#!/bin/bash#For Example BY linuxprobe.compwdls -al

执行脚本有三种方法:

脚本文件路径:./Example.sh

sh脚本文件路径:sh Example.sh

source脚本文件路径:source Example.sh

学习shell脚步入门,推荐你到《linux就该这么学》这本书上看看,讲解的很详细,同时还能学到更得linux教程。

Script可用于记录当前用户的 *** 作记录,默认写在typescript文件中。

用法:usage: script [-a] [-f] [-q] [-t] [file]

参数:

-a:追加到输出文件

-f:输出到指定文件

-q:安静模式,不显示Script started…这些信息

-t:指定时间文件和日志文件,格式:-t time.log action.log,用于回放 *** 作。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7327274.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-04
下一篇2023-04-04

发表评论

登录后才能评论

评论列表(0条)

    保存