shell命令1
2020-03-03 本文已影响0人
crossroads
前言
shell的注释不是// 哦,只是习惯如此写,//后的数据均为输出或注释。
1. 变量
your_name="hello" //变量名和等号之间不能有空格
echo $your_name
echo ${your_name}
readonly your_name //设为只读变量
unset vari //unset删除非只读变量
2. 单双引号的区别
"$your_name" // hello
'$your_name' //$your_name
'hello ,'$your_name'' //hello,hello
echo '$name\"' // $name\" ,原样输出字符串,用单引号
3. 字符串操作
// 字符串长度
${#your_name} //5
// 提取子字符串,第二个字符到底四个字符
${your_name:1:4} //ello
// 查找子字符串
echo `expr index "$your_name" ol` // 3
4. 数组
arr_v[0]="value0"
arr_v[2]="value2"
echo ${arr_v[2]} //value2
arr=('a' 'b' 'c' ) //数组元素用"空格"符号分割开
echo ${arr[2]} //c
//输出数组中所有元素
echo ${arr[@]} // a b c
echo ${arr[*]} //a b c
// 数组长度
echo ${#arr[@]} //3
echo ${#arr[*]} //3
5. 注释
// 单行注释
# 注释
//多行注释
:<<EOF
注释内容...
注释内容...
注释内容...
EOF
//EOF可以用其他符号,例如【
:<<【
注释内容...
注释内容...
注释内容...
【
6. 传递参数
echo "执行的文件名:$0";
$ chmod +x test.sh
$ ./test.sh //执行的文件名:./test.sh
参数处理 | 说明 |
---|---|
$# | 传递到脚本的参数个数 |
$* | 以一个单字符串显示所有向脚本传递的参数。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。 |
$$ | 脚本运行的当前进程ID号 |
$! | 后台运行的最后一个进程的ID号 |
$@ | 与$*相同,但是使用时加引号,并在引号中返回每个参数。 |
如"1" "n" 的形式输出所有参数。 | |
$- | 显示Shell使用的当前选项,与set命令功能相同。 |
$? | 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。 |
后记
学习网站:https://www.runoob.com/linux/linux-shell-variable.html
运行sh命令:https://www.runoob.com/try/runcode.php?filename=helloworld&type=bash