Shell脚本

Posted 一无所有就是编程的理由

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell脚本相关的知识,希望对你有一定的参考价值。

Shell脚本(学习Linux比较重要的一节)

一、创建Shell脚本

1Shell 脚本:如果你有一系列经常使用的Linux命令,你可以把它们存储在一个文件中。Shell可以读取这个文件并执行其中的命令。这样的文件被称为脚本文件

2、执行Shell脚本:要创建一个shell脚本你要使用任何编辑器比如:vi在文本文件中编写它,为了使用bash shell来执行脚本magic,其命令是:bash magic ./magic

         3echo命令用于在屏幕上显示消息:echo“This is an example of the echo command”

         这是echo命令的一个例子。

         4#符号:用于shell脚本中可以包含注释入口

         echo“Hello”

         #This is a comment line. This would not produce any output

Echo “World”

这个例子中,第二行是一个注释

         5、创建变量:可以在任何时间通过简单的赋值来创建。

         6、语法: <variablename> = <value>

         Linux中的所有变量都被当作字符串。

        7、引用变量:$符号用于引用一个变量的内容

         variable1= ${variable2}

8、读入值给变量:在执行shell脚本时,shell还允许用户从键盘中输入一个值给变量。可以使用read命令来做

read fname

9、局部变量:当引用shell时,只有创建它的shell能够知道变量的存在

10、全局变量:称为子shellshell中创建的变量在局部创建它shell,除非是用export命令特别指出是全局的

11、环境变量:通过改变这些变量的值,用户能够定制此环境。

HOME变量:Linux系统中每个用户都一个相关的称作HOME的目录

当一个用户登陆后,进入相应的HOME的目录 echo$HOME

         PATH变量:包含一系列用冒号定界的目录的路径名字便于可执行程序的搜索

         PS1变量:PS1Prompt String1)变量包含了shell提示符,$符号

         $PS1= “HELLO>”    <Enter>

         HELLO>                     New Prompt

         PS2变量:是为第二个提示符设置值的环境变量

         LOGNAME变量:包含用户注册名字$echo “${LOGNAME}”

         SHLVL变量:该变量包含你当前工作的shell level

         SHELL变量:环境变量存储了用户的缺省shell

         env变量:用来查看所有的已移出的环境变量表和它们各自的值

二、命令替换

1、 在单个命令行中使用多个命令的另一种方法(非Pipes)是通过命令替换

2、 echo “The date is ‘date’”

3、 expr 命令:用于求值算术表达式该命令的输出被送到标准输出:

expr 4  + 5 将在屏幕显示9

4、 算术展开:你可以在$((…))中括一个表达式,用下面的命令来计算他的值

5、 $((expression))

6、 例子:编写一个shell脚本用于计算呼叫中心未应答的询问的数量。该脚本应该接收一天内所报告的询问的总数和应答的询问的数量,以便计算未应答的询问的数量

所有未应答的总数=所有询问的总数-应答的询问的数量

 

echo "Please enter the numberof queries reported today."

read totalqueries

echo "Please enter the numberof queries answered."

read answered

pending=$((totalqueries-answered))

echo "Number of calls pending =$pending"

 

         条件执行:

Test[] 命令:求值表达式,并放回true0 false

If 构造:Linux shell提供了循环和判定的构造,可以在shell脚本中使用

算术测试:结合if构造,它可用于测试变量的数字值

 

串测试:test命令也可用于字符串

文件测试:test命令也可用于检查文件的状态

Exit命令:用于终止shell脚本的执行并返回到$提示符下

数值测试:

-eq:等于则为真

-ne:不等于则为真

-gt:大于则为真

-lt:小于则为真

-le:小于等于则为真

 

 

字符串:

=:等于则为真

!=: 不等于则为真

-z: 字符串长度为0则为真

-n: 字符串长度不为0则为真

文件测试:

-e:如果文件存在则为真

-r:如果文件存在且可读则为真

-w:如果文件存在且可写则为真

-x:如果文件存在且可执行则为真

-s:如果文件存在且至少一个字符则为真

-d:如果文件存在且是目录则为真

-f:如果文件存在且为普通文件为真

-c:如果文件存在且为字符型特殊文件则为真

-b:如果文件存在且为特殊文件则为真

 

-a 并且 –o 或者 !非

 

 例子:

#!/bin/bash

echo"Enter the percentage of calls answered same day."

read score

if [$score  -le 80 ]

then

        echo "Your Grade is Average."

elif [$score -gt 80 -a $score -le 90 ]

then

        echo "Your Grade is Good."

else

        echo "Your Grade isOutstanding."

fi

~       

 

 

 

Case..esac构造:

While构造:while <条件>

Do

<命令(s)>

Done只有条件为真是,就执行dodone

for构造:for varable_namein <list_of_values>

d--o… done for循环取一系列值作为输入并对循环每一个值

控制进程的执行:

请求后台处理:用于请求后台进程的符号是(&)

Wctempfile &

[1]2082

Vi newfile

 

检查后台进程:

Ps(进程状态)命令为每个当前活动每个进程产生一个入口

 

终止后台进程:Kill

查看完成一个命令所花的时间:time time find /etc –name “passwd” 2>/dev/null

 

垂直(|)是管道字符:比如:ls –l| more ls –l 的输出作为 more 的输入

         管道命令功能强大:

 

今天就先到此:接下来应该是VI了,想了解更多可以到https://www.w3cshool.com/查阅相关教程



当前浏览器不支持播放音乐或语音,请在微信或其他浏览器中播放 Shell脚本 Shell脚本

当前浏览器不支持播放音乐或语音,请在微信或其他浏览器中播放 Shell脚本 Shell脚本

当前浏览器不支持播放音乐或语音,请在微信或其他浏览器中播放

      都说心情好听的是旋律,心情不好听的是歌词,小编觉得在操场上听听歌真的很不错,小伙伴们也可以试试哦,享受属于自己的宁静。

以上是关于Shell脚本的主要内容,如果未能解决你的问题,请参考以下文章

Shell脚本--变量(后附简单shell脚本案例)!

shell脚本翻译 急求

shell脚本书写方法

如何在shell脚本里调用另一个shell脚本

shell脚本获取参数&在线执行shell脚本

shell脚本中#是啥意思