printf 命令介绍
printf 相比于echo 的移植性更好。且可以格式化字符串的输出样式。
printf "%-10s %-8s %-4s\n" 姓名 性别 体重kg
printf "%-10s %-8s %-4.2f\n" 郭靖 男 66.1234
printf "%-10s %-8s %-4.2f\n" 杨过 男 48.6543
printf "%-10s %-8s %-4.2f\n" 郭芙 女 47.9876
解释:
%-10s 指一个宽度为10个字符(-表示左对齐,没有-默认为右对齐)
%4.2f 指格式化为小数,.2指保留两位小数
常用的格式替代符:
%d:Decimal 对应位置参数必须是十进制整数,否则抱错
%s:String 字符串--对应位置参数必须是字符串
%c:Char 字符 对应位置参数必须是字符串或者字符型
%f:float 浮点 对应位置参数必须是数字
shell流程控制
在shell中如果有else分支语句,则在分支中必须有执行语句,否则会报错
语法格式:
if condition
then
command1
command2
fi
eg:
a=5
b=4
if [ $a != $b ]
then
echo "the number is not equal"
fi
if else 语句的使用直接看实例
a=87
if [ $a -gt 90 ]
then
echo "the grade is perfect "
elif [ $a -gt 80 ]
then
echo "the grade is good "
elif [ $a -gt 60 ]
then
echo "the grade is generic"
else
echo "the grade is bad!"
fi
for循环语句
与其它编程语言类似,shell支持for循环
一般格式为:
for var in arguments...
do
commands
done
eg:
for loop in 1 "hello" 'a' 14.5
do
echo "the argument is ${loop}"
done
while 循环语句
while conditon
do
command
done
在举例之前我们需要了解一个 let命令
let命令是bash中用于计算的工具,用于执行一个或多个表达式,变量计算中不需要加上$来表示变量
如果表达式中包含了空格或者其它特殊字符则必须引起来。
实例:
自加操作: let no++
自减操作: let no--
简写形式: let no+=10, let no-=20
eg:
let a=5+4 #注意空格问题
echo $a #9
b=`expr 6 + 7`
echo $b #13
let命令和expr命令的比较
let 不需要空格隔开表达式的各个字符。而 expr 后面的字符需要空格隔开各个字符
知道了let命令的使用,我们现在可以使用while语句了
需要输出1-10这几个数字
number=1
while((${number}<=10))
do
echo ${number}
let "number++"
done
case语句
语法 :
case value in
1)
echo "abc...."
;;
2)
echo "def...."
esac
printf 相比于echo 的移植性更好。且可以格式化字符串的输出样式。
printf "%-10s %-8s %-4s\n" 姓名 性别 体重kg
printf "%-10s %-8s %-4.2f\n" 郭靖 男 66.1234
printf "%-10s %-8s %-4.2f\n" 杨过 男 48.6543
printf "%-10s %-8s %-4.2f\n" 郭芙 女 47.9876
解释:
%-10s 指一个宽度为10个字符(-表示左对齐,没有-默认为右对齐)
%4.2f 指格式化为小数,.2指保留两位小数
常用的格式替代符:
%d:Decimal 对应位置参数必须是十进制整数,否则抱错
%s:String 字符串--对应位置参数必须是字符串
%c:Char 字符 对应位置参数必须是字符串或者字符型
%f:float 浮点 对应位置参数必须是数字
shell流程控制
在shell中如果有else分支语句,则在分支中必须有执行语句,否则会报错
语法格式:
if condition
then
command1
command2
fi
eg:
a=5
b=4
if [ $a != $b ]
then
echo "the number is not equal"
fi
if else 语句的使用直接看实例
a=87
if [ $a -gt 90 ]
then
echo "the grade is perfect "
elif [ $a -gt 80 ]
then
echo "the grade is good "
elif [ $a -gt 60 ]
then
echo "the grade is generic"
else
echo "the grade is bad!"
fi
for循环语句
与其它编程语言类似,shell支持for循环
一般格式为:
for var in arguments...
do
commands
done
eg:
for loop in 1 "hello" 'a' 14.5
do
echo "the argument is ${loop}"
done
while 循环语句
while conditon
do
command
done
在举例之前我们需要了解一个 let命令
let命令是bash中用于计算的工具,用于执行一个或多个表达式,变量计算中不需要加上$来表示变量
如果表达式中包含了空格或者其它特殊字符则必须引起来。
实例:
自加操作: let no++
自减操作: let no--
简写形式: let no+=10, let no-=20
eg:
let a=5+4 #注意空格问题
echo $a #9
b=`expr 6 + 7`
echo $b #13
let命令和expr命令的比较
let 不需要空格隔开表达式的各个字符。而 expr 后面的字符需要空格隔开各个字符
知道了let命令的使用,我们现在可以使用while语句了
需要输出1-10这几个数字
number=1
while((${number}<=10))
do
echo ${number}
let "number++"
done
case语句
语法 :
case value in
1)
echo "abc...."
;;
2)
echo "def...."
esac