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
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传递传输 脚本内获取参数的格式为:$n。n 代表一个数字,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` 完整的表达式要被``包含
乘法比较特殊符号表达是 ‘\*’
关系运算符
布尔运算符
逻辑运算符
举个例子
a=10 b=20 if [[ $a -lt 100 && $b -gt 100 ]] then echo "返回 true" else echo "返回 false" fi
字符串运算符
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