100個Shell腳本——【腳本1】打印形狀


【腳本1】打印形狀

一、腳本
打印等腰三角形、直角三角形、倒直角三角形、菱形

#!/bin/bash

#等腰三角形
read -p "Please input the length:" n
for i in `seq 1 $n`
do
  for ((j=$n;j>i;j--))
  do
      echo -n " "
  done
  for m in `seq 1 $i`
  do
      echo -n "*"
  done
  echo
done

#直角三角形
read -p "Please input the length:" n
for i in `seq 1 $n`
do
  for ((j=1;j<=$i;j++))
  do
     echo -n "*"
  done
  echo
done

#倒直角三角形
read -p "Please input the length:" n
for i in `seq 1 $n`
do
    for j in `seq $i $n`
    do
        echo -n "*"
    done
    echo
done

#菱形
read -p "Please input the length:" n
for i in `seq 1 $n`
do
   for ((j=$n;j>i;j--))
   do
      echo -n " "
   done
   echo
   for m in `seq 1 $i`
   do
      echo -n "*"
   done
   echo
done
for i in `seq 1 $n`
do
    for ((j=1;j<=$i;j++))
    do
        echo -n " "
    done
    echo
    for ((k=$i;k<=$n-1;k++))
    do
       echo -n "*"
    done
    echo
done

二、小結

1、for循環語句
參考:
[1]shell腳本之for循環
[2]shell條件控制和循環結構
1.1 for語法結構

for 循環條件
do
   shell語句
done

2、seq命令
參考:
[1]shell腳本之seq命令
2.1 seq命令語法

用法:seq [選項]... 尾數
 或:seq [選項]... 首數 尾數
 或:seq [選項]... 首數 增量 尾數
選項:
    -f, --format=FORMAT      use printf style floating-point FORMAT
    -s, --separator=STRING   use STRING to separate numbers (default: \n)
    -w, --equal-width        equalize width by padding with leading zeroes

3、echo命令
參考:
[1]linux echo命令的-n、-e兩個參數
3.1 echo命令語法

echo -n 不換行輸出
echo -e 處理特殊字符
若字符串中出現以下字符,則特別加以處理,而不會將它當成一般文字輸出:
\a 發出警告聲;
\b 刪除前一個字符;
\c 最后不加上換行符號;
\f 換行但光標仍舊停留在原來的位置;
\n 換行且光標移至行首;
\r 光標移至行首,但不換行;
\t 插入tab;
\v 與\f相同;
\\ 插入\字符;
\nnn 插入nnn(八進制)所代表的ASCII字符;

4、read命令
參考:
[1]SHELL腳本--read命令
4.1 read命令語法
read [-rs] [-a ARRAY] [-d delim] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [var_name1 var_name2 ...]
read命令用於從標准輸入中讀取輸入單行,並將讀取的單行根據IFS變量分裂成多個字段,並將分割后的字段分別賦值給指定的變量列表var_name。第一個字段分配給第一個變量var_name1,第二個字段分配給第二個變量var_name2,依次到結束。如果指定的變量名少於字段數量,則多出的字段數量也同樣分配給最后一個var_name,如果指定的變量命令多於字段數量,則多出的變量賦值為空。
如果沒有指定任何var_name,則分割后的所有字段都存儲在特定變量REPLY中。

選項說明:
-a:將分裂后的字段依次存儲到指定的數組中,存儲的起始位置從數組的index=0開始。
-d:指定讀取行的結束符號。默認結束符號為換行符。
-n:限制讀取N個字符就自動結束讀取,如果沒有讀滿N個字符就按下回車或遇到換行符,則也會結束讀取。
-N:嚴格要求讀滿N個字符才自動結束讀取,即使中途按下了回車或遇到了換行符也不結束。其中換行符或回車算一個字符。
-p:給出提示符。默認不支持"\n"換行,要換行需要特殊處理,見下文示例。例如,"-p 請輸入密碼:"
-r:禁止反斜線的轉義功能。這意味着"\"會變成文本的一部分。
-s:靜默模式。輸入的內容不會回顯在屏幕上。
-t:給出超時時間,在達到超時時間時,read退出並返回錯誤。也就是說不會讀取任何內容,即使已經輸入了一部分。
-u:從給定文件描述符(fd=N)中讀取數據。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM