尚观shell的学习

#!/bin/bash
#预定义变量的学习
a=`pgrep a.sh `
if [ $? -eq 0 ]; then
echo "ps 命令执行成功"
echo 执行结果是:$a
else
echo "执行失败,erro code is :$?"
fi

echo 当前脚本的名称是:$0
echo 当前进程的进程号是:$$
echo 你一共输入了$#个参数,他们分别是:$*
echo 你输入的两个数的和是$[$1+$2]

echo 你输入的两个数的差是$(($1-$2))

echo 你输入的两个数的差是$(expr $1 + $2 )

read -p "请在两秒只能输入第一个数字" -t 2 num
read -p "请输入第二个数字:" num1
echo $(($num+$num1))
#${parameter:-word}
#若 parameter 为空或未设置,则用 word 代替 parameter 进行替换,parameter 的值不变

unset a
a=1
unset b
a=${b:-3}
echo "a的值: "$a
echo "b的值:"$b

c=1
d=2
c=${d:-4}
echo "c的值: "$c

echo "d的值: "$d


#!/bin/bash

a=1
unset b
#如果b不没有值,就将3赋给a,但是b的值仍未空
a=${b:-3}
echo $a
echo $b
a='abcdefabckh'
#打印出a字符串的长度
echo ${#a}
#去掉a字符串的前三位
echo ${a:3}
#从第三位开始连续取3个字符串
echo ${a:2:3}
#最短匹配截取
echo ${a#a*c}
#最长匹配截取
echo ${a##a*c}
#第一次匹配替换
echo ${a/a/m}
#全局匹配替换
echo ${a//a/m}
#如何a的值为空就报erro,如果有值就显示该值
unset a
#a=1
echo ${a:?adfsafdsaf}
echo ${a:?unset a}



第三部分for循环的学习(圣诞树打印)

#!/bin/bash
read -p "请输入要打印的行数" num
for ((i=1;i<=$num;i++))
do
for((j=1;j<=$num-i;j++))
do
echo -n " "
done
for ((k=1;k<=i*2-1;k++))
do
echo -n \*
done
echo
done


for ((i=2;i<=$num;i++))
do
for((j=1;j<=$num-i;j++))
do
echo -n " "
done
for ((k=1;k<=i*2-1;k++))
do
echo -n \*
done
echo
done

for ((i=2;i<=$num;i++))
do
echo -n " "
for ((m=1;m<=2*$num-5;m++))
do
echo -n \*
done
echo
done
~

九九乘法表打印

#!/bin/bash
for((i=1;i<=9;i++))
do
for((j=1;j<=i;j++))
do
echo -n "$j*$i="$[$i*$j]
echo -n " "
done
echo
done

你可能感兴趣的:(shell)