Linux命令汇总(二)SHELL命令

SHELL命令

#!:系统脚本运行的解释器或SHELL

echo:向窗口输出文本

运行脚本:

        1)将代码保存为test.sh,cd到该目录

chmod +x ./test.sh #使脚本具有执行权限
./test.sh #执行脚本

        2)SHELL脚本文件名  作为  解释器参数,直接运行

/bin/sh test.sh
/bin/php test.php

脚本变量:

定义变量\赋值变量:不能有空格    

filename=“abc.com”

使用变量:在变量名前加 $,    {}可以帮助解释器识别变量边界

echo $filename

echo ${filename}

for skill in Ada Coffe Action Java; do 
        echo "I am good at ${skill}Script" 
done

只读变量:readonly

#!/bin/bash myUrl="https://www.google.com" 
readonly myUrl 
myUrl="https://www.baidu.com"

删除变量:unset,  不能删除只读变量!!!

unset myUrl

SHELL字符串:

单引号:

        单引号中任何字符都会原样输出,变量是无效的

        需要成对出现,可以进行字符串拼接        

双引号:

        双引号可以有变量

        双引号中可以有转义字符

拼接字符串:

your_name="abc"
# 使用双引号拼接
greeting="hello, "$your_name" !"
greeting_1="hello, ${your_name} !"
echo $greeting $greeting_1
# 使用单引号拼接 greeting_2='hello, '$your_name' !'
greeting_3='hello, ${your_name} !'
echo $greeting_2 $greeting_3

获取字符串长度:

string=“abc”

echo {#echo}

截取字符串:索引从0开始

echo {string:0:1}

查找子字符串:查找语句用的是反引号   ` `(esc下面的按键), 不是单引号   ' '

查找字符a或b的位置(哪个先出现,先返回哪个)

string="abcde"
echo `expr index "$string" ab` # 输出0

SHELL数组:

不支持多维数组,变量之间用空格分开,索引从0开始

定义数组:

array_name=(value0 value1 valie2)

array_name=(

value0

value1

value2

)

array_name[0]=value0

array_name[2]=value2

读取数组:@ 或  *  表示读取数组所有元素

${数组名[下标]}

a=${array1[0]}

echo ${array1[@]}

获取数组长度:同获取字符串长度

# 获取数组元素个数

length=${#array1[@]}

# 或

length=${#array1[*]}

# 获取单个元素长度

length_ele=${#array1[0]}

SHELL基本运算符   expr

算术运算符:+  -  * (需要变成\*使用)  /    %  =   ==   !=

实例:

#!/bin/bash
a=10
b=20

val=`expr $a + $b`
echo "a + b : $val"
val=`expr $a - $b`
echo "a - b : $val"

val=`expr $a \* $b`
echo "a * b : $val"
val=`expr $b / $a`
echo "b / a : $val"

val=`expr $b % $a`
echo "b % a : $val"

if [ $a == $b ]
then
   echo "a 等于 b"
fi
if [ $a != $b ]
then
   echo "a 不等于 b"
fi

关系运算符: 只支持数字,用来做数字的比较

-eq两边相等
-ne两边不等
-gt(greater)左边大于右边
-lt(lighter)左边小于右边
-ge大于等于
-le小于等于

实例:

#!/bin/bash
a=10
b=20

if [ $a -eq $b ]
then
   echo "$a -eq $b : a 等于 b"
else
   echo "$a -eq $b: a 不等于 b"
fi
if [ $a -ne $b ]
then
   echo "$a -ne $b: a 不等于 b"
else
   echo "$a -ne $b : a 等于 b"
fi
if [ $a -gt $b ]
then
   echo "$a -gt $b: a 大于 b"
else
   echo "$a -gt $b: a 不大于 b"
fi
if [ $a -lt $b ]
then
   echo "$a -lt $b: a 小于 b"
else
   echo "$a -lt $b: a 不小于 b"
fi
if [ $a -ge $b ]
then
   echo "$a -ge $b: a 大于或等于 b"
else
   echo "$a -ge $b: a 小于 b"
fi
if [ $a -le $b ]
then
   echo "$a -le $b: a 小于或等于 b"
else
   echo "$a -le $b: a 大于 b"
fi

布尔运算符

非:表达式为True,返回False
-o(or)或:有一个True,就返回True
-a(and)与:所有为True,返回True

例子:

#!/bin/bash
a=10
b=20

if [ $a != $b ]
then
   echo "$a != $b : a 不等于 b"
else
   echo "$a == $b: a 等于 b"
fi
if [ $a -lt 100 -a $b -gt 15 ]
then
   echo "$a 小于 100 且 $b 大于 15 : 返回 true"
else
   echo "$a 小于 100 且 $b 大于 15 : 返回 false"
fi
if [ $a -lt 100 -o $b -gt 100 ]
then
   echo "$a 小于 100 或 $b 大于 100 : 返回 true"
else
   echo "$a 小于 100 或 $b 大于 100 : 返回 false"
fi
if [ $a -lt 5 -o $b -gt 100 ]
then
   echo "$a 小于 5 或 $b 大于 100 : 返回 true"
else
   echo "$a 小于 5 或 $b 大于 100 : 返回 false"
fi

逻辑运算符: &&   ||

&&逻辑的AND
||逻辑的OR




 

字符串运算符

文件测试运算符

cat: 输出文件内容 “cat text1 text2 >> text3”   将text1,text2内容加上行号(空白行不加)输出到text3中

还可以用来清空文档,制作镜像

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值