Shell学习笔记二(基本语法)

Shell 数组

       Linux Shell在编程方面比Windows批处理强大很多,无论是在循环、运算。

       bash支持一维数组(不支持多维数组),并且没有限定数组的大小。类似与C语言,数组元素的下标由0开始编号。获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0。

 定义数组:

在Shell中,用括号来表示数组,数组元素用“空格”符号分割开。定义数组的一般形式为:
数组名=(值1 值2 ... 值n)

例如:

array_name=(value0 value1 value2 value3)

或者:

array_name[0]=value0
array_name[1]=value1
array_name[n]=valuen

读取数组:

读取数组元素值的一般格式是:

${数组名[下标]}

例如:

array_name[n]=valuen
echo v=${array_name[n]} #输出valuen

使用@符号可以获取数组中的所有元素,例如:

echo ${array_name[@]}

获取数组的长度:

array_name=(value0 value1 value2 value3)                                                             # 取得数组元素的个数
length=${#array_name[@]}
# 或者
length=${#array_name[*]}
# 取得数组单个元素的长度
lengthn=${#array_name[n]}

Shell 的echo 指令

echo是Shell的一个内部指令,用于在屏幕上打印出指定的字符串。

如果变量与其它字符相连的话,需要使用大括号({ }):

  mouth=5
  echo "${mouth}-5-2014"

显示换行:

echo "OK!\n"
echo "It is a test"


显示不换行:

echo "OK!\c"
echo "It is a test"

显示结果定向到文件

echo "It is a test" > myfile

Shell test 命令

Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。

数值测试

参数说明
-eq等于则为真
-ne不等于则为真
-gt大于则为真
-ge大于等于则为真
-lt小于则为真
-le小于等于则为真


num1=100
num2=100
if test $[num1] -eq $[num2]
then
    echo 'The two numbers are equal!'
else
    echo 'The two numbers are not equal!'
fi



字符串测试

参数说明
=等于则为真
!=不相等则为真
-z 字符串字符串长度伪则为真
-n 字符串字符串 字符串长度不伪则为真
num1=100
num2=100
if test num1=num2
then
    echo 'The two strings are equal!'
else
    echo 'The two strings are not equal!'
fi

文件测试

参数说明
-e 文件名如果文件存在则为真
-r 文件名如果文件存在且可读则为真
-w 文件名如果文件存在且可写则为真
-x 文件名如果文件存在且可执行则为真
-s 文件名如果文件存在且至少有一个字符则为真
-d 文件名如果文件存在且为目录则为真
-f 文件名如果文件存在且为普通文件则为真
-c 文件名如果文件存在且为字符型特殊文件则为真
-b 文件名如果文件存在且为块特殊文件则为真

   

   cd /bin
    if test -e ./bash
    then
    echo 'The file already exists!'
    else
    echo 'The file does not exists!'
    fi


另外,Shell还提供了与( ! )、或( -o )、非( -a )三个逻辑操作符用于将测试条件连接起来,其优先级为:“!”最高,“-a”次之,“-o”最低。例如:

cd /bin
if test -e ./notFile -o ./bash
then
    echo 'One file exists at least!'
else
    echo 'Both dose not exists!'
fi


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值