创建一个script,Linuxshell脚本

在Shell中,使用if、then、elif、else、fi等命令来实现分支控制,类似于C语言,这些控制流语句是由多个Shell命令组成的。
例如:if[-f~/.bashrc];then~/.bashrcfi实际上包含三个命令:if[-f~/.bashrc]、then.~/.bashrc、fi。
如果多条命令写在同一行,必须用分号分隔;如果一行中只写一个命令,则不需要分号。
当出现换行且命令未结束时,Shell会自动续行并将下一行作为命令处理。
需要注意的是命令和参数必须用空格分隔。
在if命令中,参数形成子命令。
如果子命令的ExitStatus为0(表示true),则执行下一个子命令;如果ExitStatus不为0(表示false),则执行下一个elif、else或fi子命令;如果if后面的子命令是测试命令,则也可以是其他命令。
Shell脚本没有大括号{}来表示语句块,因此fi表示if语句块的结尾。
例如:#!/bin/shif[-f/bin/bash]thenecho"/bin/bashisafile"elseecho"/bin/bashisNOTafile"fi另外,还有一个特殊的命令::,叫空命令,什么也没有,但ExitStatus始终为true。
您可以通过/bin/true或/bin/false获取true或falseExitStatus。
例如:#!/bin/shif:;thenecho"alwaystrue";fi参见另一个示例:#!/bin/shecho"Isitmorning?Pleaseansweryesorno."readYES_OR_NOif["$YES_OR_NO"="yes"];thenecho"早上好!"elif["$YES_OR_NO"="no"];thenecho"下午好!"elseecho"Sorry,$YES_OR_NOnotrecognized.Enteryesorno."exit1fiexit0本例中的读取命令用于等待用户输入一行字符串并将字符串存储在Shell变量中。
shell还提供了语法&&和||,类似于C语言中的短接功能,常用于连接两个命令:test"$(whoami)"!='root'&&(echoyouareusinganon-privilegedaccount;exit1)&&相当于预告片if...then...和||相当于ifnot...then...&&和||用于连接两个命令,而-a和-o仅用于将两个测试条件连接成一个测试表达式。
例如:test"$VAR"-gt1-a"$VAR"-lt3相当于下面的写法test"$VAR"-gt1&&test"$VAR"-lt3通过这些技巧你可以创建复杂的Shell脚本来完成各种任务。

linux系统怎么编写一个shell脚本,检查一个100台设备的是否都具有某项服务,如crond(定时任务

如何编写shell脚本本文结合大量的例子来讲解如何编写shell脚本。
为什么需要shell编程?在Linux系统中,虽然有各种各样的图形界面工具,但sell仍然是一个非常灵活的工具。
Shell不仅仅是命令的集合,而且是一种出色的编程语言。
您可以使用shell自动执行大量任务。
shell特别擅长系统管理任务,特别是那些易用性、可维护性和可移植性比效率更重要的任务。
接下来,让我们看看shell是如何工作的:构建脚本Linux中有许多不同的shell,但通常我们使用bash(bourneagainshell)进行shell编程,因为bash是免费且易于使用的。
因此,本文作者提供的脚本均使用bash(但大多数情况下,这些脚本也可以在bash的姐姐bourneshell中运行)。
与其他语言一样,我们使用任何文本编辑器,例如nedit、kedit、emacs、vi等来编写我们的shell程序。
程序必须以下行开始(必须是文件的第一行):#!/bin/sh符号#!用来告诉系统,后面的参数是用来执行该文件的程序。
在这个例子中我们使用/bin/sh来执行程序。
编辑脚本时,如果要执行该脚本,还必须使其可执行。
要使脚本可执行:chmod+xfilename然后您可以通过键入:./filename来执行脚本。