https://www.runoob.com/linux/linux-shell-variable.html
1.$0、$1、$2代表什么?
$0 :就是你写的shell脚本本身的名字
$1:是你给你写的shell脚本传的第一个参数
$2:是你给你写的shell脚本传的第二个参数
eg:
比如你新建了一个shell脚本 Test.sh, 内容如下:
#!/bin/sh
echo "shell脚本本身的名字: $0"
echo "传给shell的第一个参数: $1"
echo "传给shell的第二个参数: $2"
保存退出后,你在Test.sh所在的目录下输入 bash Test.sh 1 2
结果为:
shell脚本本身的名字: Test.sh
传给shell的第一个参数: 1
传给shell的第二个参数: 2
2.运行 Shell 脚本有两种方法
1)
将上面的代码保存为 test.sh,并 cd 到相应目录:
chmod +x ./test.sh #使脚本具有执行权限
./test.sh #执行脚本
2)
这种运行方式是,直接运行解释器,其参数就是 shell 脚本的文件名,如:
/bin/sh test.sh
/bin/php test.php
3.
在有参数时,可以使用对参数进行校验的方式处理以减少错误发生:
if [ -n "$1" ]; then
echo "包含第一个参数"
else
echo "没有包含第一参数"
fi
注意:中括号 [] 与其中间的代码应该有空格隔开
4.
Shell 里面的中括号(包括单中括号与双中括号)可用于一些条件的测试:
- 算术比较, 比如一个变量是否为0,
[ $var -eq 0 ]
。 - 文件属性测试,比如一个文件是否存在,
[ -e $var ]
, 是否是目录,[ -d $var ]
。 - 字符串比较, 比如两个字符串是否相同,
[[ $var1 = $var2 ]]
。
5.显示结果定向至文件
echo "It is a test" > myfile
6.cat file.txt: 输出文件内容到标准输出设备(屏幕)上
https://blog.csdn.net/ljp812184246/article/details/52585650
https://www.jianshu.com/p/ed153a81af77
7.shell字符截取
https://blog.csdn.net/qq_42491125/article/details/101368505
#*chr
表示删除从左到右第一个遇到的字符chr及其左侧的字符##*chr
表示删除从左到右最后一个遇到的字符chr及其左侧的字符(贪婪模式)%chr*
表示删除从右向左第一个遇到的字符chr及其右侧的字符%%chr*
表示删除从右到左最后一个遇到的字符chr及其右侧的字符(贪婪模式)