最近正在看<<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脚本语法,以及各种shell命令!
shell编程 创建shell脚本 ①创建第一个shell脚本②运行shell脚本shell 基础语法 ①变量②变量分类与数组③shell传递参数④基本运算符shell流程控制语法 ①if else条件判断②for循环③while循环④until循环⑤case语句...
介绍如何写shell脚本,shell脚本的组成,编写简单的shell脚本
适合新人学习shell
此资源是本人对linux shell脚本的语法总结,均实际验证通过。
基础的shell脚本的demo,可以帮助初学者了解shell的语法
本篇文章会介绍一些基础的shell语法,虽然有点长,但是如果我下面列出的重点你有点模糊的话尽量看一下,我个人觉得写的比较细。话不多说讲什么我会先列出来,如果会了可以忽略本文章,省下时间去学习别的知识~ 条件...
shell脚本基本语法详解.doc
从网上搜集的shell 基本语法 * 1 合理使用注释 * 2 变量赋值和引用 * 3 Shell里的命令 ... * 9 Shell脚本示例 o 9.1 一般编程步骤 o 9.2 二进制到十进制的转换 o 9.3 文件循环拷贝 * 10 脚本调试
内容概要:shell脚本编程语法,几个Shell脚本例子,Linux登录退出脚本 适合人群:适合Linux新手学习 能学到什么:shell脚本编程的语法,以及规范
shell脚本的静态检查工具,适用于开发人员对编写的shell脚本进行静态检查,以此避免shell脚本的语法错误和提升shell脚本的健壮性
Linux常用命令 2 1.1 su用户切换 2 1.2 useradd 添加用户 2 1.3 passwd修改口令 2 1.4 ls查看文件/目录 3 1.5 cd改变工作目录 4 1.6 pwd显示工作目录 4 1.7 mkdir创建目录 5 ...4.2 shell脚本基本语法 24
Linux shell脚本编写基础 在进行linux测试时编写脚本是必不可少的,Shell脚本的名称可以随便定义,也不要什么后缀名, 例如可以写abc,smartzip这类名称,运行时只要键入 ./smartzip就能运行脚本了。。 每行命令开头...
在写Shell脚本的过程中,掌握最基本的脚本语法,是完成Shell脚本的关键基础所在。但是,掌握Shell脚本的基础内容,也不是一蹴而就的!需要长期来练习,付出大量的时间与努力。(我也正在学习的路上…一起呗) 每天...
Shell也是一门编程语言,即shell脚本,shell是解释执行的脚本语言,可直接调用linux命令。 一个系统可以存在多个shell,可以通过cat /etc/shells命令查看系统中安装的shell,不同的shell可能支持的命令语法是不相同...
第1部分. Linux 脚本编写基础 1.1 语法基本介绍 在进行linux测试时编写脚本是必不可少的,Shell脚本的名称可以随便定义,也不要什么后缀名,例如可以写abc,smartzip这类名称,运行时只要键入
摘要:对于经常使用Shell命令的朋友来说,掌握基本的Shell脚本语法就可以着手编写Shell脚本了。因此,在文档中,鄙人以介绍Shell语法为重点,必要之处,附以命令、语法的使用说明,所谓“寓情于景、寓理于事”,可以...
在写Shell脚本时,对于循环的几种写法,我想大家并不陌生。但若不是经常写,也会遗忘一些循环语法,或者只能够想起某一两种语法编写脚本。本脚本中总结了Shell中经常使用的几种循环操作。
文章内容包括Shell脚本的基础概念、语法和结构、文件操作、常见面试题及解答。文章旨在帮助面试者更好地准备与Shell脚本相关的面试,提高对Shell脚本编程的理解和应用能力。 【适用人群】 这篇文章主要面向准备与...
从0开始学习shell脚本的编译 内容分为三个章节: 1、shell脚本编写规则 2、shell脚本常用方法 3、shell脚本的基础语法