shell命令(一)

shell 

注:本文的图片摘录于runoob网站http://www.runoob.com

定义变量的时候,变量名不嫁美元符号 PHP语言中需要

使用定义过的变量 $name 可以加花括号识别边界 ${name}

只读变量 readonly name 

删除变量 unset name  不能删除只读变量

局部变量 仅在当前shell实例中有效

环境变量 所有的程序包括shell启动的程序都能够访问

Shell变量 shell程序设置的特殊变量

 

字符串 

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

双引号可以出现转义字符

双引号拼接

greeting_1="hello, ${your_name} !"

单引号拼接

greeting_2='hello, '$your_name' !'

获取字符串长度

string="abcd"

echo ${#string} #输出 4

截取字符串

string="runoob is a great site"

echo ${string:1:4} # 输出 unoo

查找字符串 i或者o 位置谁先出现就计算哪个

string="runoob is a great site"

echo `expr index "$string" io`  # 输出 4

shell命令(一)

Bash只支持一维数组

array_name=(v1 v2 v3)  array_name[0]=v1 

读取下标 ${array_name[0]}

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

${array_name[@]}

 

# 取得数组元素的个数

length=${#array_name[@]}

# 或者

length=${#array_name[*]}

# 取得数组单个元素的长度

lengthn=${#array_name[n]}

 

单行注释 #

多行注释

:<<EOF

注释内容...

注释内容...

注释内容...

EOF

Shell传递传输 脚本内获取参数的格式为:$nn 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推……

echo "Shell 传递参数实例!";

echo "执行的文件名:$0";

echo "第一个参数为:$1";

echo "第二个参数为:$2";

echo "第三个参数为:$3";

$ ./test.sh 1 2 3

Shell 传递参数实例!

执行的文件名:./test.sh

第一个参数为:1

第二个参数为:2

第三个参数为:3

Shell 基本运算符

Bash不支持简单的数学运算可以通过其他命令来实现最常用都是expr

两个数相加使用的反引号` 不是单引号

val=`expr 2+2` 完整的表达式要被``包含

乘法比较特殊符号表达是 ‘\*’

shell命令(一)

关系运算符

shell命令(一)

布尔运算符

shell命令(一)

逻辑运算符

shell命令(一)

举个例子

a=10
b=20
if [[ $a -lt 100 && $b -gt 100 ]]
then
   echo "返回 true"
else
   echo "返回 false"
fi

字符串运算符

shell命令(一)

echo 命令

1.显示普通字符串

echo "It is a test"

2.显示转义字符

echo "\"It is a test\"" 结果为 "It is a test"

3.显示变量

read name  read命令从标准输入中读取一行,并把输入行的每个字段的值指给shell变量

echo "$name It is a test"

4.显示换行

echo -e "OK! \n" # -e 开启转义

echo "It is a test"

5.显示不换行

echo -e "OK! \c" # -e 开启转义\c 不换行

echo "It is a test"

6.显示结果定向至文件

echo "It is a test" > myfile

7.原样输出字符串,不进行转义或取变量

echo '$name\"' 结果为$name\"

8.显示命令执行结果

echo `date` 结果

Thu Jul 24 10:08:46 CST 2018