文件形式
第一行:#!/bin/bash
数组
除了中间用空格隔开,其他差不多,例如:arr=(1 2 3 4 5)
while语句
while [ 条件 ] #注意两边都要有空格
do
语句
done
for语句
for ((i=0; i<100; i++))
do
语句
done
if语句
if [ 条件 ]
then
语句
else
语句
fi
逻辑语句条件
-eq:测试两个整数是否相等(equal)
-ne:测试两个整数是否不等(not equal)
-gt:测试一个数是否大于另一个数(grater than)
-lt:测试一个数是否小于另一个数(less than)
-ge:大于或等于(great than & equal)
-le:小于或等于(less than & equal)
-d:当pathname存在并且是一个目录时返回真(directory)
-f:当file存在并且是正规文件时返回真(file)
示例
1.输出1+2+3+到100
sum=0
j=1
for((j;j<=100;j++))
do
let "sum=sum+j"
done
echo $sum
2.复制文件到某目录下之类
#!/bin/bash
file=$1
index=$2
if [ -d $index ] && [ -f $file ] #-d判断目录存在,-f判断文件存在
then
cp $file $index/$file
fi
3.将参数倒序输出
#!/bin/bash
count=$# #这里得到参数数量n
cmd=echo
echo $cmd
while [ $count -gt 0 ]
do
cmd="$cmd \$$count" #相当于$n $n-1…$1
count=`expr $count - 1` #注意-两边有空格
done
eval $cmd
4.输出某个目录下一堆文件(不确定几个)的内容
#!/bin/bash
dir=$1
shift #第二个参数开始全是文件名
if [ -d $dir ]
then
cd $dir
for name in $* #传入所有文件名
do
if [ -f $name ]
then cat $name
echo "the end of : ${dir}/$name"
else
echo "Invaild file name : ${dir}/$name"
fi
done
else echo "Wrong directory name : $dir"
fi
5.数组实现斐波那契数列输出
#!/bin/bash
a=(1 1)
sum=0
n=$1
if [ $n -gt 0 ]
then
for ((i=2;i<n+2;i++))
do
echo ${a[i-2]}
let "a[i]=a[i-1]+a[i-2]"
done
fi
几种运行方式
(1)bash 脚本名
(2)source 脚本名
(3). 脚本名
(4)./脚本名
,但是这种需要通过命令:chmod +x 脚本名
,来增加执行权限后才可使用
参考
简单教程:https://blog.csdn.net/qq_22075977/article/details/75209149