Shell学习
目录
题记
由于要跑kaldi(一个语音识别工具),里面有很多shell脚本要运行,所以快速学习一遍shell,主要是参考https://www.runoob.com/linux/linux-shell-variable.html 学习。
变量
显式定义
- 代码
your_name="cj"
echo $your_name
echo "Hi ${your_name}!!!"- 输出
cj
Hi cj!!!注意:1. 等号=两边不能有空格. 2. 调用的时候要写$ 3.调用变量可以加上花括号{},来帮助确定变量名的边界.
隐式定义
- 代码
echo `ls ./|grep sh`
echo $(ls ./|grep sh)
echo $(pwd)- 输出
learn.sh
learn.sh
/home只读变量和删除变量
myUrl="http://www.google.com"
readonly myUrl
variable=“cj”
unset variable要点:1. 若修改只读变量会报错 2. unset 命令不能删除只读变量
字符串
单引号
- 代码
v='variable'
s='${v}\n Hi'
echo -e $s
join='hi '$v
echo $join- 输出
${v}
Hi
hi variable要点:不能使用变量
双引号
要点:可以使用转义符和变量
- 代码
v='variable'
s="${v}\n Hi"
echo -e $s
join="hi $v"
echo $join- 输出
variable
Hi
hi variable不用引号
中间不能有空格,转义的\n变成输出n了。
v=variable
s=${v}\nHi
echo -e $s
join='hi '$v
echo $join- 输出
variablenHi
hi variable字符串操作
-
获取字符串长度
string="abcd" echo ${#string} #输出 4 -
提取子字符串
string="runoob is a great site" echo ${string:1:4} # 输出 unoo -
查找子字符串
string="runoob is a great site"
echo `expr index "$string" io` # 输出 4数组
定义数组
array_name=(value0 value1 value2 value3)读取数组
${数组名[下标]}@获取数组所有元素
echo ${array_name[@]}