`

Shell脚本语法记录

 
阅读更多

  最近正在看<<How tomcat works>>这本书,其中讲到了如何通过shell脚本启动tomcat的章节。因为平时很少写这个东西,故在此记录一下,作为自己的学习笔记。同时作为自己的技术积累,作为比较高级的shell脚本开发者来说,本文章可能不符合你的口味。烦请不要拍砖。

   下面开始记录shell脚本的正文部分,都是一些基础命令的讲解。

   首先一个shell脚本是一个文本文件,可以用vi等编辑器编辑它。要确定它的许可模式,要给这个可执行的文本文件进行授权,

  $ chmod  +x scriptName
  $ chmod 755 scriptName 

这样就会给文件所有者设置读写权限,组和其他人只有读取权限。

可以采用如下方式,执行该脚本文件:

bash scriptName
sh scriptName
./scriptName

 接下来是一些shell脚本中常用的命令,用来理解tomcat中的一些命令

 

  comment

 使用#号来表示后面的文本被忽略

# This is a comment

 它也可以出现在语句的中间

echo Hello # print Hello

 

 clear

使用clear来清除屏幕,下面的语句先清除屏幕,再打印一条消息

clear
echo Shell scripts are useful

 

 exit

使用exit可以退出shell脚本。退出的状态有几种,0表示正常退出,非0表示非正常退出。因此当你遇到问题时,可以用如下脚本退出

exit 1

 

 echo

 使用echo命令可以在屏幕打印出一串字符,

echo Hello World

 

  Calling A Function

可以使用句号来调用一个函数或者调用其他Shell脚本,

../test.sh

 

 System and User Defined Variables

变量名必须是以数字字母或者下划线开头。使用等号来给变量赋值,

myVar = Tootsie

注意:等号前后不能存在空白符,另外需要注意变量名区分大小写。可以设置变量的值为空字符串或者直接将右边直接留空,

myVar=
myVar=""

 要访问一个变量的值,可以使用变量名前加$符号来访问变量,

echo $myVar

 Unix/Linux系统提供了一些系统变量,例如HOME表示当前用户的home目录,PWD表示用户当前目录,PATH表示查找调用命令的路径等

 

  expr

使用expr表示一个表达式,一个表达式必须用引号括起来,

sum = 'expr 100 + 200'
echo $sum

 它创建了一个名字sum的变量 并将其赋值为300,

下面另一个例子:

echo 'expr 200 + 300'

 它在屏幕上打印如下内容500

特殊的‘uname’表达式表示操作系统的名字,

echo 'uname'

 特殊的‘dirname  filePath’ 返回文件的目录,例如‘dirname /home/user/test.sh’ 返回 /home/user

 

 Accessing Parameters

跟给函数传递参数一样,一个可以传递参数给shell脚本。可以用$1来表示第一个参数 $2表示第二个参数,以此类推。$#命令获得参数个数,$@获取所有参数

 

shift

Shift参数将参数后移一位,$1获得$2的值,$2获得$1的值

 

if...then....[else....] fi

if语句块用于测试一个条件并执行适当的命令,语法如下:

if condition then

  list of commands

[else

  list of commands

]

fi

注意,可以使用elif代替else if

下面的例子,在获得一个start参数的时候打印出Starting the application,收到stop的时候打印出Stropping the application,

if [ "$1" = "start" ]; then
  echo Starting the application
fi
if [ "$1" = "stop" ]; then
 echo Stopping the application
fi

 注意: 在条件中,在[后边必须有一个空格,而]之前必须有一个空格

$1 用双引号括起来的时候,如果没有参数传递给它不会产生异常。

$0 表示用户执行脚本的命令,例如,如果使用如下命令执行test.sh

./test.sh

$0 will then contail ./test.sh

$0 就表示./test.sh

下面的表示可选条件

   

.  -f file,true if file exists
.  -r file,true if you have read access to file
. -z string,true if string is empty.
. -n string,true if striing is not empty
. string1 = string2,true if string1 equals string2 
. string1 != string2, true if string is not equals to string2

 

for Loop

 For循环的语法如下,

 

for { var } in {list}
do
   list of commands
done
 例如:

 

 

for i in 1 2 3
do 
    echo iteration $i
done
 打印出:

 

 

iteration 1
iteration 2
iteration 3
 

 

while Loop

 while循环的语法如下:

 

while [condition]
do 
   list of commands
done
 例如

 

 

n=1
while [ $n -lt 3 ];
do 
   echo iteration $n
   n=$((n+1))
done
 输出为

 

 

iteration 1
iteration 2
 [ $n -lt -3]中的 -lt表示less than 所以它表示n的值小于3

 

 

case

Case运行你写一个选择性执行的程序,语法如下:

 

case $variable-name in 
parrern1)
  list of commands
  ;;
pattern2)
  list of commands
;;
*)
  list of commands
;;
esac
 ;;用户结束执行命令,*)表示没有其他模式匹配的时候执行

 

例如,下面的脚本检查操作系统的名字。如果你使用的是cgwin,OS400或Linux,将打印出Operation该system not recogized

 

case "'uname'" in
CYGWIN*) echo cygwin;;
OS400*)  echo OS400;;
Linux*) echo Linux;;
*) echo Operating system not recogized
esac
 

 

 Output Redirection

使用>将输出定位到文件中,例如,可以使用如下命令,

 

echo Hello > myFile.txt
 该文件创建一个名为myFile.txt的文件并将Hello写入其中。屏幕上不会有显示。

 

注意: 1> &2将stdout上的错误信息显示到stderr上而 2>&1 将stderr的输出显示到stdout上。

 

Conditional Executions

可以写命令或者条件的形式来决定执行哪个命令。这时候使用&&和||

 

command1 && command2
 如果command1返回一个0退出状态就执行command2.command1也可以使用一个条件来代替。如果条件为真,command2将会执行,否则不执行command2.

 

 

command1 ||  command2
 如果command1的退出类型为非0,则执行command2.

 

 

command1 && command2 ||  command3
 如果command1返回0退出状态,执行command2,否则执行command3

 

到此记录完毕!!!

分享到:
评论

相关推荐

    Shell脚本学习教程PDF版

    在“Shell脚本学习教程PDF版”中,你将深入理解Shell脚本的基本概念、语法结构以及高级特性。 首先,Shell脚本的基础包括变量、条件语句、循环结构和函数。变量是存储数据的地方,可以是文本、数字或者其他类型。在...

    shell编程 创建shell脚本 shell 基础语法 shell流程控制语法 shell函数

    下面将详细介绍创建 Shell 脚本、Shell 基础语法、流程控制语法以及如何定义和使用 Shell 函数。 首先,让我们理解一下 Shell 编程的基础。Shell 是操作系统提供的一种命令解释器,用户通过 Shell 与操作系统进行...

    shell 脚本基本语法学习

    介绍如何写shell脚本,shell脚本的组成,编写简单的shell脚本

    shell脚本语法

    ### Shell脚本语法详解 #### 一、Shell脚本基础 **Shell脚本**是一种用于自动化执行Linux或Unix系统中的任务的脚本语言。通过编写Shell脚本,用户可以组合多个命令来完成复杂的操作,提高工作效率。Shell脚本的...

    250个shell脚本

    通过学习和实践这些脚本,你可以深入理解Shell脚本的基本语法、变量、函数、流程控制结构,以及如何调用系统命令。 Shell编程的核心知识点包括: - 命令行参数:如$0, $1, $@等,用于接收脚本执行时传递的参数。 - ...

    Shell脚本语法.txt

    适合新人学习shell

    shell脚本与Makefile区别.docx

    "shell脚本与Makefile区别" shell 脚本和 Makefile 是两个不同的工具,它们都用于自动化构建和编译过程,但是它们有很大的不同之处。本文将详细介绍 shell 脚本和 Makefile 的区别。 首先,shell 脚本和 Makefile ...

    linux shell脚本语法总结

    此资源是本人对linux shell脚本的语法总结,均实际验证通过。

    shell脚本大全

    1. **基础语法**:Shell脚本由命令行指令组成,每条指令之间用换行符分隔。基础语法包括变量定义(例如,`VAR=value`),条件语句(如`if-else`结构),循环(如`for`和`while`循环),以及函数定义。 2. **输入/...

    Linux-shell脚本全面学习.pdf

    Linux Shell 脚本编程基础知识点总结 Linux 脚本编写基础 1.1 语法基本介绍 * `#!` 符号用来告诉系统它后面的参数是用来执行该文件的程序 * 在 Linux 中,使用 `/bin/sh` 来执行程序 * 编辑好脚本后,需要使其可...

    shell脚本学习指南

    二、Shell脚本语法 1. **变量**:Shell中的变量无需预先声明,直接赋值即可。如`NAME="John"`。环境变量(如`PATH`)和位置参数($1, $2等)也是常用的变量类型。 2. **命令与操作符**:常见的命令包括`echo`...

    Shell 脚本专家指南

    标题中提到的“Shell 脚本专家指南”指向的是关于Shell脚本编写的深入知识和技巧的指南。Shell脚本是Linux/Unix操作系统中非常强大的工具,它允许用户编写一系列命令并自动执行它们,这些命令通常以bash(Bourne ...

    Shell脚本专家指南

    二、Shell脚本语法 1. 注释:学习如何使用#进行注释,以解释脚本的各个部分。 2. 输入/输出重定向:掌握如何改变命令的标准输入、输出和错误输出。 3. I/O重定向与管道:理解如何使用&gt;、&lt;、&gt;&gt;、|等符号进行文件操作...

    shell脚本基本语法详解.doc

    Shell脚本基本语法详解 Shell脚本基本语法详解是指在编写Shell脚本时所需要了解和掌握的基本语法。下面是对Shell脚本基本语法的详细解释: 一、 Shell 变量 在Shell脚本中,变量的赋值和使用是非常重要的。Shell...

    unix shell脚本编程

    Unix Shell脚本编程是Unix操作系统中一种强大的自动化工具,它允许用户编写一系列命令,形成一个可执行的文本文件,称为Shell脚本。这种脚本语言的功能强大且灵活,类似于高级编程语言,但更加轻量级,特别适合进行...

    shell 脚本 实例 shell 脚本 实例

    通过学习和理解这些实例,初学者可以快速掌握Shell脚本的基本语法和技巧,进阶者则能从中汲取灵感,解决更复杂的问题。在实际工作中,熟练运用Shell脚本能够帮助我们自动化日常的运维任务,如定时备份、日志分析、...

    Shell脚本实现二维码图片生成

    Shell脚本是Linux系统中的一种强大工具,它允许用户通过编写命令行指令序列来执行自动化任务。在这个场景中,我们讨论的是一个特定的Shell脚本,它的目标是生成二维码图片。在旧有的系统中,如果没有源码可供修改,...

    高级Shell脚本编程.zip

    1. **基本语法**: Shell脚本的开头通常是`#!/bin/bash`,用来指定解释器。接着,你可以定义变量,如`VAR=value`。命令的执行通过在行尾添加分号或者换行来完成。 2. **流程控制**: Shell支持条件语句(if-else,...

    shell脚本.pdf

    1. **基础语法**:Shell脚本的基础包括变量定义、条件语句(if-else)、循环结构(for, while)、函数定义等。变量在Shell中用来存储数据,可以通过"$"符号来引用。条件语句和循环结构用于控制程序的流程,根据不同...

    LINUX SHELL 脚本攻略

    Linux Shell脚本攻略是一本针对Linux操作系统下Shell脚本编写的指导书籍。Shell脚本是利用Shell编程语言来控制和自动化命令序列的脚本,常用于系统管理、服务器管理、自动化任务处理等领域。本书的第三版包含了全面...

Global site tag (gtag.js) - Google Analytics