linux shell 脚本详解

. Linux  shell 脚本编写基础
◆1.1 语法基本介绍
1.1.1 开头

程序必须以下面的行开始(必须方在文件的第一行):
#!/bin/sh
符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/sh来执行程序。
当编辑好脚本时,如果要执行该脚本,还必须使其可执行。
要使脚本可执行:
编译 chmod +x filename 这样才能用./filename 来运行
1.1.2 注释
在进行shell编程时,以#开头的句子表示注释,直到这一行的结束。我们真诚地建议您在程序中使用注释。
如果您使用了注释,那么即使相当长的时间内没有使用该脚本,您也能在很短的时间内明白该脚本的作用及工作原理。
1.1.3 变量

在其他编程语言中您必须使用变量。在shell编程中,所有的变量都由字符串组成,并且您不需要对变量进行声明。要赋值给一个变量,您可以这样写:

复制代码代码如下:


#!/bin/sh 
#对变量赋值: 
a=”hello world” 
# 现在打印变量a的内容: 
echo “A is:” 
echo $a


有时候变量名很容易与其他文字混淆,比如:

复制代码代码如下:


num=2 
echo “this is the $numnd”

这并不会打印出“this is the 2nd”,而仅仅打印”this is the “,因为shell会去搜索变量numnd的值,但是这个变量时没有值的。可以使用花括号来告诉shell我们要打印的是num变量:

复制代码代码如下:


num=2 
echo “this is the ${num}nd”


这将打印: this is the 2nd
1.1.4 环境变量
export关键字处理过的变量叫做环境变量。我们不对环境变量进行讨论,因为通常情况下仅仅在登录脚本中使用环境变量。

这一讲就介绍到这里,下面我们会接触到具体的Linux shell脚本基础的实质部分。

 

 

必须要要知道几个变量,

复制代码代码如下:


   *    $0 :即命令本身,相当于c/c++中的argv[0]
    *    $1 :第一个参数.
    *    $2, $3, $4 … :第2、3、4个参数,依次类推。
    *    $#  参数的个数,不包括命令本身
    *    $@ :参数本身的列表,也不包括命令本身
    *    $* :和$@相同,但”$*” 和 “$@”(加引号)并不同,”$*”将所有的参数解释成一个字符串,而”$@”是一个参数数组。


手工处理方式能满足多数的简单需求,配合shift使用也能构造出强大的功能,但处理复杂选项时建议用下面的两种方法。
例子,(getargs.sh):

复制代码代码如下:


#!/bin/bash
if [ $# -lt 1 ]; then
    echo “error.. need args”
    exit 1
fi
echo “commond is $0”
echo “args are:”
for arg in “$@”
do
    echo $arg
done


运行命令:

复制代码代码如下:


./getargs.sh 11 22 cc
commond is ./getargs.sh
args are:
11
22
cc

 

 ”>, >>, 2>, 2>> :前面讲过重定向符号> 以及>> 分别表示取代和追加的意思,然后还有两个符号就是这里的2> 和 2>> 分别表示错误重定向和错误追加重定向,当我们运行一个命令报错时,报错信息会输出到当前的屏幕,如果想重定向到一个文本里,则要用2>或者2>>。

 linux shell 脚本详解

[ ] ”:中括号,中间为字符组合,代表中间字符中的任意一个

 linux shell 脚本详解

&& 与 ||

在上面刚刚提到了分号,用于多条命令间的分隔符。另外还有两个可以用于多条命令中间的特殊符号,那就是 “&&”和”||”。下面笔者把这几种情况全列出:

1) command1 ; command2

2) command1 && command2

3) command1 || command2

使用”;”时,不管command1是否执行成功都会执行command2; 使用”&&”时,只有command1执行成功后,command2才会执行,否则command2不执行;使用”||”时,command1执行成功后command2 不执行,否则去执行command2,总之command1和command2总有一条命令会执行。

linux shell 脚本详解 

 

 

 

 

原创文章,作者:linux-qiao,如若转载,请注明出处:http://www.178linux.com/83818

(0)
linux-qiaolinux-qiao
上一篇 2017-08-05
下一篇 2017-08-05

相关推荐

  • 文件查找工具

    文件查找     我们常常需要知道哪个文件放在哪里,才能够对该文件进行一些修改或维护等动作。 有些时候某些软件配置文件的文件名是不变的,但是各发行版 放置的目录则不同。 此时就得要利用一些搜寻指令将该配置文件的完整文件名捉出来,这样才能修改。     比较实用的两个文件查找工具l…

    Linux干货 2016-08-21
  • 程序包管理之yum:yum源\库配置以及源码编译安装

    程序包管理之yum yum概念 什么是yum 由yellow dog这一发行版的开发者Terra Soft研发。 使用rpm命令安装软件包时,解决不了依赖关系,就会很麻烦,使用yum可以自行解决依赖关系。 删除某个安装包,如果是用rpm删除,就卸载掉某个依赖关系从而导致其他软件包不能使用。 yum特点 可同时配置多个软件仓库 简洁的配置文件/etc/yum.…

    Linux干货 2016-11-22
  • PS进程命令常用选项参数详解

    PS命令是什么 ps命令能够给出当前系统中进程的快照。它能捕获系统在某一时间的进程状态。如果想要不断更新查看这个状态,可以配合watch命令或使用top命令。ps命令支持三种使用的语法格式 UNIX 风格:选项可以组合在一起,并且选项前必须有”-“连字符。 BSD 风格 :选项可以组合在一起,但是选项前不能有”-&#822…

    2017-07-09
  • 马哥教育网络班22期+第1周课程练习 忍者乱太郎喻成

    1.计算机组成:  根据冯诺依曼的计算机结构分为四大块:控制器,运算器, 存储器,输入输出设备 控制器:对其他的组件进行控制 运算器:用于处理计算工作,不控制输入和输出 储存器:用于暂时或长期存储数据 输入输出:与外界进行交互 个人延伸: 我的理解这是一个在计算机研发之前的一个理论假象, 相对现在真实的计算机体系,这个分类会比较模糊。 运算器:cp…

    Linux干货 2016-08-15
  • 三.Linux博客-2016年7月24日帮助、history、别名、tree

    格式说明: 操作 概念 命令 说明及举例 三-1.帮助、history、别名、tree touch /etc/nologin 使普通用户不能登录(创建了一个文件,删掉就可以登陆)   ll /etc/nologin 查看那个文件 -rm -f /etc/  删…

    Linux干货 2016-08-23
  • 第一周的博客作业

    1.计算机的组成以及功能:     cpu:就是中央处理器,运算和判断计算机的数据;     储设器:存储计算机的数据;     主板:链接多的计算机的硬件;     I/O设备:输入,输出设备,,如…

    Linux干货 2017-01-05