shell echo/read/printf/流程控制章节笔记

// echo read printf 流程控制 命令

1、read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量  

read hello  
输入xxx   
echo $hello  
显示 xxx  

read 参数  
-p 提示文字
-n 输入的字符长度
-t 输入限时
-s 隐藏输入内容 输入时不显示  

read -p '请输入密码' -s password   
输入  
echo $password  // 显示刚才输入的字符  

2、echo -e "11111
2222"  //  -e 开启转义  

3、printf [format] 文本 文本 格式化输出  

%s 字符串  
%f 浮点数  %f.2 保留两位小数   printf %.2f 1.3333  
%c char字符 单字符 
printf "%c %.2f" aaaaaa 1.3333  // a 1.33  
%d 十进制数
%-10s  // -左对齐 默认右对齐 10s 10个字符宽  

printf "11111
2222" // 打印换行  


4、流程控制  

if condition  
then  
else  
elif  
fi  // if 的反转  

-------

for var in xxx  // var变量 (for i in xxx)  
do   
done  

-------

hello=(a b c d e)  
for i in ${hello[@]}  
do  
echo $i  
done  

-------

for i in 1 2 3 4 5  
do  
    echo $i  
done  

-------

while condition  
do  
command  
done  

-------

num=1  
while (( $num < 10 ))  
do  
echo $num  
let num++  // 等同于 num=`expr $num + 1`  
done 

------- 

echo -p '输入数字: ' -s  
read num  
case $num in  
    1)  echo '你选择了 1'  
    ;;  
    2)  echo '你选择了 2'  
    ;;  
esac  

-------

until跟while相反  

num=10  
until [ $num -le 1 ]  // 直到小于等于1停止执行 
do  
echo $num  
num=`expr $num - 1`  
done  

-------

for (( i=0; i<10; i++))  
do   
echo $i  
done  

-------

while :  
do  
echo '输入一个数字'  
read num  
case $num in   
  1|2|3|4|5) echo “你输入了$num”  
  ;;  
  *) echo "你输入了1-5之外的数"  
  break   
  ;;  
  esac  
  done  

  

原文地址:https://www.cnblogs.com/leyi/p/10623510.html