本文共 2851 字,大约阅读时间需要 9 分钟。
KaTeX parse error: Can't use function '\.' in math mode at position 22: …=~ ^[-[:alnum:]\̲.̲_]+
查找$REPLY变量里行首行尾,以-,后面是任意数字和._最少出现一次以上 KaTeX parse error: Can't use function '\.' in math mode at position 25: …^-?[[:digit:]]*\̲.̲[[:digit:]]+ 查找$REPLY变量里行首行尾,-出现0次或一次,相同任意数字任意次 . 任意数字最少一次 R E P L Y = − ? [ [ : d i g i t : ] ] + REPLY =~ ^-?[[:digit:]]+ REPLY= −?[[:digit:]]+ 查找$REPLY变量里行首行尾,-出现0次或一次,任意数字最少一次echo -e "OK! \n" # -e 开启转义echo "It is a test"
输出结果
OK!It is a test
#!/bin/shecho -e "OK! \c" # -e 开启转义 \c 不换行echo "It is a test"
输出结果
OK! It is a test
echo "It is a test" > myfile
echo '$name\"'
输出结果
$name\"
echo `date`
注意: 这里使用的是反引号 `, 而不是单引号 '。
结果将显示当前日期
Thu Jul 24 10:08:46 CST 2014
================================================================
| 能否引用变量 | 能否引用转移符 | 能否引用文本格式符(如:换行符、制表符)单引号 | 否 | 否 | 否 双引号 | 能 | 能 | 能无引号 | 能 | 能 | 否
================================================================
read 命令一个一个词组地接收输入的参数,每个词组需要使用空格进行分隔;如果输入的词组个数大于需要的参数个数,则多出的词组将被作为整体为最后一个参数接收。
测试文件 代码如下:
read firstStr secondStrecho "第一个参数:$firstStr; 第二个参数:$secondStr"
执行测试:
$ sh test.sh 一 二 三 四第一个参数:一; 第二个参数:二 三 四
实例, 文件 :
read -p "请输入一段文字:" -n 6 -t 5 -s passwordecho -e "\npassword is $password"
参数说明:
$ sh test.sh 请输入一段文字:password is asdfgh
1,print 中不能使用%s ,%d 或%c;
2,print 自动换行,printf 没有自动换行
Bash中,数组变量的赋值有两种方法:
(1) name = (value1 … valuen) 此时下标从0开始
(2) name[index] = value
下面以一个简单的脚本来说明,脚本内容如下:
#!/bin/bash #定义数组 A=(a b c def)
#把数组按字符串显示输出
echo ${A[@]}
#屏幕显示:a b c def
#数组的长度表示${#A[*]}
len=${#A[*]} echo ${#A[*]}
#屏幕显示:4
#改变数组元素的值 A[3]='vivian' echo ${A[*]}
#屏幕显示:a b c vivian
#循环输出数组元素 i=0 while [ $i -lt $len ] do echo ${A[$i]} let i++ done
#屏幕输出:
#a #b #c #vivian#循环输出数组元素的另一种写法,注意,在条件中,引用变量一定要用双引号 ,否则报错
for (( j=0; j<"$len"; j=j+1 )) do echo ${A[$j]} done
#循环输出数组元素的另一种写法,注意, A [ ∗ ] 不 能 写 成 {A[*]}不能写成 A[∗]不能写成A , A 默 认 是 第 一 个 元 素 , 如 果 A = " a b c d e d " , 就 可 以 写 A默认是第一个元素,如果A="a b c ded",就可以写 A默认是第一个元素,如果A="abcded",就可以写A
for value in ${A[*]} do echo $value done
声明一个数组变量
直接赋值:
array[0]=”Zero” array[1]=”One” array[2]=”Two”
declare声明:
declare -a array
小括号空格法:
array=(Zero One Two)
引号空格法:
array=”Zero One Two”
混合法:
array=([0]=”Zero” [1]=”One” [2]=”Two”)
遍历一个数组
标准for循环:
for(( i=0;i<${#array[@]};i++)) do echo ${array[i]}done#输出结果ZeroOneTwo
for…in:
for i in ${array[@]}do echo $idone#输出结果ZeroOneTwo
获取数组的长度
echo ${#array[@]}3echo ${#array[*]}3
删除数组元素
unset array[0]echo ${#array[@]}2for i in ${array[@]}do echo $i doneOneTwo
切片
echo ${array[@]:0:1}Zeroecho ${array[@]:0:2}Zero Oneecho ${array[@]:0:3}Zero One Twoecho ${array[@]:1}One Twoecho ${array[@]:2}Two
更多文档需求可以在[]中找到
转载地址:http://yqqen.baihongyu.com/