查询手册
for循环和seq的使用
echo "method 1"
for i in `seq 1 10`;
do
echo $i;
done
echo "method 2"
for i in {1..10}
do
echo $i;
done
echo "method 3"
for i in `seq 1 2 10`;
do
echo $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" ];then
rm test.txt
else
touch test.txt
fi
for i in `seq 1 10`;do
echo $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可新增,修改或删除环境变量,供后续执行的程序使用。