查询手册
菜鸟教程
for循环和seq的使用
echo "method 1"
for i in `seq 1 10`;
doecho $i;
done
echo "method 2"
for i in {1..10}
doecho $i;
done
echo "method 3"
for i in `seq 1 2 10`;
doecho $i;
done
进入目录创建文件重定向内容
cd Test
touch test.sh
echo "This is the test for test.sh ">test.sh
关于函数的使用
如果函数内部没有参数就返回最后一条执行的结果
function Platform()
{echo $(uname)
}function Pwd()
{echo $(PWD)
}function main()
{type=`Platform`echo "Platform:"${type}echo "#####"echo ${PWD}
}main
运行结果
Platform:Darwin
#####
/Users/kouhz/Code/Shell
函数的传参
funWithParam(){echo "第一个参数为 $1 !"echo "第二个参数为 $2 !"echo "第十个参数为 $10 !"echo "第十个参数为 ${10} !"echo "第十一个参数为 ${11} !"echo "参数总数有 $# 个!"echo "作为一个字符串输出所有参数 $* !"
}main
[@kouhaozhedeMacBook-Pro:Shell]$ !bash
bash function.sh
Platform:Darwin
#####
/Users/kouhz/Code/Shell
第一个参数为 1 !
第二个参数为 2 !
第十个参数为 10 !
第十个参数为 34 !
第十一个参数为 73 !
参数总数有 11 个!
作为一个字符串输出所有参数 1 2 3 4 5 6 7 8 9 34 73 !
接受数字
echo "请输入数字:"
read num
echo "您输入的数字是:"
echo $num
判断文件和文件夹是否存在
if [ -f "test.txt" ];thenrm test.txt
elsetouch test.txt
fi
for i in `seq 1 10`;doecho $i>>test.txt
done
文件比较符
-e 判断对象是否存在
-d 判断对象是否存在,并且为目录
-f 判断对象是否存在,并且为常规文件
-L 判断对象是否存在,并且为符号链接
-h 判断对象是否存在,并且为软链接
-s 判断对象是否存在,并且长度不为0
-r 判断对象是否存在,并且可读
-w 判断对象是否存在,并且可写
-x 判断对象是否存在,并且可执行
-O 判断对象是否存在,并且属于当前用户
-G 判断对象是否存在,并且属于当前用户组
-nt 判断file1是否比file2新 [ “/data/file1” -nt “/data/file2” ]
-ot 判断file1是否比file2旧 [ “/data/file1” -ot “/data/file2” ]
环境变量
local
一般用于局部变量声明,多在在函数内部使用。
global
其作用域从被定义的地方开始,到shell结束或被显示删除的地方为止。
export
将自定义变量设定为系统环境变量(仅限于该次登陆操作,当前shell中有效)
语法:export [-fnp][变量名称]=[变量设置值]
补充说明:在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。
正则表达式语法
https://www.sojson.com/regex/generate