Linux下Bash shell学习笔记

mac2022-06-30  71

原文地址: http://www.cnblogs.com/NickQ/p/8870423.html

1、shell下没有变量类型和定义的概念。

变量直接使用不用定义所有值都视为字符串。在对变量取值都需要加$行注释为 #

在shell中,算术运算,执行加减除

例如:

var1=5 var2=2 total=`expr $var1+$var2`

$ 是取变量值运算符 ` 是命令置换符,将expr \(var1+\)var2执行结果赋值给total expr 是做数学运算的命令

shell中,算术运算,执行乘

例如:

var1=5 var2=2 total=`expr $var1 \* $var2` * 在shell中为通配符。在此用作乘法需要转义 \ 是转义命令符,因此 \*表示乘法。

2、设置PATH

PATH 是shell找寻命令的路径。如果执行的命令找不到,会报command not found错误。 修改PATH:

PATH = $PATH:/usr/temp

3、shell脚本第一句应指明解释器

一般第一句为: #!/bin/bash

4、条件判断

if 空格 [ 空格 条件1 空格 == 空格 条件二 ] 空格;空格then

注意汉字指明的空格 == ; > [] 两边必须有空格

例如: #!/bin/bash SYSTEM=`uname -s` if [ $SYSTEM == "Linux" ] ; then echo "Linux System" elif [ $SYSTEM == "FreeBSD" ] ; then echo "FreeBSD System" elif [ $SYSTEM == "Solaris" ] ; then echo "Solaris System" else echo "Unknow System" fi

判断符号

1、字符串判断 str1 = str2  当两个串有相同内容时为真 str1 != str2  当串str1和str2不等时为真 -n str1    当串的长度大于0时为真(串非空) -z str1    当串的长度为0时为真(空串) str1     当串str1为非空时为真 2、数字的判断 int1 -eq int2    两数相等为真 int1 -ne int2    两数不等为真 int1 -gt int2    int1大于int2为真 int1 -ge int2    int1大于等于int2为真 int1 -lt int2    int1小于int2为真 int1 -le int2    int1小于等于int2为真 3、文件的判断 -r file     用户可读为真 -w file     用户可写为真 -x file     用户可执行为真 -f file     文件为正规文件为真 -d file     文件为目录为真 -c file     文件为字符设备文件为真 -b file     文件为块设备文件为真 -s file     文件大小非0时为真 4、复杂逻辑判断 -a         与 -o        或 !        非

5、switch/case结构

#!/bin/bash SYSTEM=`uname -s` case $SYSTEM in Linux) echo "Linux System" ;; FreeBSD) echo "FreeBSD System" ;; Solaris) echo "Solaris System" ;; *) echo "Unknow System" ;; esac

6、Shell循环

举例 1: #!/bin/bash echo "Use for list 1~10" for i in `seq 1 10` ; do echo $i done echo "List file in current folder:" for file in `ls` do echo $file done 举例 2: #!/bin/bash echo "Use while list 1~10" min=1 max=10 while [ $min -le $max ] do echo $min min=`expr $min + 1` done

6、Shell参数解析

参数说明:

$# 表示参数的个数 $* 表示所有的参数 $0 表示程序的名字 $1 表示第一个参数 $2 表示第二个参数

参数解析 实现不同参数,执行不同命令

举例: #!/bin/bash while getopts "hv" opt #Parser the arguments do case $opt in h) usage ;; v) version ;; ?) usage ;; esac done

函数调用不需要加括号。

Shell的其他应用

Shell调试

打开调试 set -x 关闭调试 set +x

例如: set -x xxx.sh

在shell脚本中添加,可局部打开调试。

Bash Shell段注释

:<< EOF 注释掉的代码 EOF

配置文件使用

source 或 . 命令可以让ini格式文件的引用生效。

例如: #!/etc/bash.sh CONF_FILE=/etc/sysconfig/network-scripts/ifcfg-eth0 source $CONF_FILE etho $IPADDR

如上,变量IPADDR,未在shell中赋值,但却打印出了IP地址。原因是 source $CONF_FILE,是/etc/sysconfig/network-scripts/ifcfg-eth0文件中的IPADDR,被引用到此shell中。

转载于:https://www.cnblogs.com/NickQ/p/8870423.html

最新回复(0)