Linux bash编程

bash中有如下四种变量:用户自定义变量、位置变量、环境变量和预定义变量。

1.用户自定义变量

用户自定义的变量是bash 脚本里用户自己声明的变量,区分大小写,使用时必须明确变量的类型,要避免运算过程中变量类型的错用。 变量的声明格式及赋值如下:
变量=值(注意:等号两边不能有空格)
例如:
a=“Red Hat Enterprise Linux”
bc=5

对用户自定义变量进行调用需要在变量前加$,且有时需要用{}括起来,同其他字符分开,例如:

echo $a
echo RHEL5 is ${a}${bc} 

变量名多于一个字符时,建议用{}把变量括起来使用。变量赋值后,可以在程序的其他地方对其进行重新赋值,且没有类型限定的要求。
变量的使用过程通常配合引号的应用,引号分为双引号、单引号和倒引号,各种引号在Shell本中使用的义是不同的。
双引号:如果把一个带有$字符的变量放在双引号中,程序执行到该行时会把变量替换为它的值。另外,如果在参数中包含一个或过个空白字符,必须给参数加双引号。
单引号:如果把一个带有$字符的变量放在单引号中,不会发生替换现象。这相当于用\字符取消$的特殊含义。
倒引号:用于命令替换。在倒引号内部的shell命令首先被执行,其结果输出替代用倒引号括起来的文本。
例如:

 1 #!/bin/bash
  2 a="Red Hat Enterprise Linux"
  3 echo $a
  4 echo "$a"
  5 echo '$a'
  6 echo \$a 
  7 a=`pwd`
  8 echo '$a' now equals $a 

运行结果如下:

Red Hat Enterprise Linux
Red Hat Enterprise Linux
$a
$a
$a now equals /root

2.位置变量

bash在解释用户命令时,会把所输入的命令后面的参数使用位置变量传递给bash脚本程序,$1$2…$n分别代表参数1、参数2…参数n,而$0代表脚本名字。
$*:这个变量包括参数的列表。
$@:这个变量包括参数的列表。
$#:这个变量包括参数的个数。
例如:

 #!/bin/bash
echo "There are $# parameters. "
echo "The parameters are * ${*} *"
echo "The parameters are * $@ *"
echo "The script $0 is now running. "
echo "The first parameter was * $1 *"
echo "The second parameter was * $2 *"
echo "The third parameter was * $3 *"

上述程序保存为text.sh 把它设置为可执行,运行后得到如下结果:

[root@localhost ~]# ./text.sh  one two
There are 2 parameters. 
The parameters are * one two *
The parameters are * one two *
The script ./text.sh is now running. 
The first parameter was * one *
The second parameter was * two *
The third parameter was *  *

因为脚本只有两个参数,所以$3的值为空

3.环境变量

shell运行时系统自动设置的一些变量。这些变量命名通常用大写字母或数组组成。
在这里插入图片描述
在这里插入图片描述

算术运算

expr命令和let命令

expr命令把一个算术表达式作为参数,通常形式如下:
expr arg
其中arg通常为 [操作数][运算符] [操作数] 格式的表达式。运算符和操作数之间要有空格隔开。有效的算术操作符主要有:+、-、*、/、%
*作为乘法运算符时要用\符号修饰

$expr 4 \* 5 

结果显示:20
在这里插入图片描述

条件判断

与C语言相反,条件判断的结果为0表示真,为1表示假。
条件判断的格式有两种:
(1) text condition
(2) [ condition ] 左右中括号和判断条件之间要用空格隔开

字符串比较

在这里插入图片描述

整数关系比较

在这里插入图片描述

文件属性比较

在这里插入图片描述

多个条件的逻辑组合

在这里插入图片描述

控制结构

if分支语句

if condition1;
then
命令
[elif condition2;
then
命令]
[else
命令]
fi
其中,中括号部分可省略。elif是else-if的缩写。每个if语句要以fi作为结束.

Case分支语句

case 条件 in
模式1)
命令
;;
模式2)
命令
;;
esac
for语句
for变量 in item1 item2 … itemN
do
命令
done

while和until语句

while/until
do
命令
done

函数使用
格式:
[function]函数名()
{
命令

其中,中括号部分可以省略,函数名后的小括号不带有形式参数。如果在函数内部需要使用传递给函数的参数,一般用$0、 1 、 … 、 1、…、 1n以及 ∗ 、 *、 #、$@。函数的定义要写在引用函数的语句前。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值