乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      和即將用到Shell的人們談?wù)別cho命令和printf 命令

       大文豪賢斌學(xué)長 2020-05-02

      Shell echo命令

      Linux的echo命令, 在shell編程中極為常用, 在終端下打印變量value的時候也是常常用到的, 因此有必要了解下echo的用法。其主要用于字符串的輸出。命令格式:

      # echo [Options] [String]

      方括號中的項(xiàng)目是可選的。字符串可以定義為字符的有限序列(如字母,數(shù)字,符號,標(biāo)點(diǎn)符號)。

      當(dāng)echo命令不帶任何選項(xiàng)或字符串使用時,它會在顯示屏上返回一個空白行,后面換一行跟上命令提示符。這是因?yàn)榘聪禄剀囨I就是發(fā)送一個信號給系統(tǒng)以開始一個新行,而echo重復(fù)了該信號。

      # 該命令的一般格式為:echo [ -n ] 字符串

      其中選項(xiàng)-n表示輸出文字后不換行;字符串能加引號,也能不加引號。

      用echo命令輸出加引號的字符串時,將字符串原樣輸出;用echo命令輸出不加引號的字符串時,將字符串中的各個單詞作為字符串輸出,各字符串之間用一個空格分割。

      Shell 的 echo 指令與 PHP 的 echo 指令類似,都是用于字符串的輸出。

      您可以使用echo實(shí)現(xiàn)更復(fù)雜的輸出格式控制。

      顯示普通字符串:

      echo "It is a test"

      這里的雙引號完全可以省略,以下命令與上面實(shí)例效果一致:

      echo It is a test

      顯示轉(zhuǎn)義字符

      選項(xiàng):

      -n 不換行輸出

      -e 啟用反斜線轉(zhuǎn)義解釋

      -E 禁用反斜線轉(zhuǎn)義解釋(默認(rèn))

      功能說明:顯示文字。

      語   法:echo [-ne][字符串] 或 echo [--help][--version]

      補(bǔ)充說明:echo會將輸入的字符串送往標(biāo)準(zhǔn)輸出。輸出的字符串間以空白字符隔開, 并在最后加上換行號。

      參   數(shù):-n 不要在最后自動換行 。-e 若字符串中出現(xiàn)以下字符,則特別加以處理,而不會將它當(dāng)成一般文字輸出:

      \a 發(fā)出警告聲;

      \b 刪除前一個字符;

      \c 最后不加上換行符號;

      \f 換行但光標(biāo)仍舊停留在原來的位置;

      \n 換行且光標(biāo)移至行首;

      \r 光標(biāo)移至行首,但不換行;

      \t 插入tab;

      \v 與\f相同;

      \\ 插入\字符;

      \nnn 插入nnn(八進(jìn)制)所代表的ASCII字符;

      –help 顯示幫助

      –version 顯示版本信息

      echo "\"It is a test\""

      結(jié)果將是:

      "It is a test"

      同樣,雙引號也可以省略

      顯示變量

      read 命令從標(biāo)準(zhǔn)輸入中讀取一行,并把輸入行的每個字段的值指定給 shell 變量

      #!/bin/sh

      read name

      echo "$name It is a test"

      以上代碼保存為 test.sh,name 接收標(biāo)準(zhǔn)輸入的變量,結(jié)果將是:

      [root@www ~]# sh test.sh

      Good #標(biāo)準(zhǔn)輸入

      Good It is a test #輸出

      顯示換行

      echo -e "Good!\n" # -e 開啟轉(zhuǎn)義

      echo "It is a test"

      輸出結(jié)果:

      Good!

      It is a test

      顯示不換行

      #!/bin/sh

      echo -e "Good! \c" # -e 開啟轉(zhuǎn)義 \c 不換行

      echo "It is a test"

      輸出結(jié)果:

      Good! It is a test

      顯示結(jié)果定向至文件

      echo "It is a test" > myfile

      原樣輸出字符串,不進(jìn)行轉(zhuǎn)義或取變量,用單引號就可以做到。

      echo '$name\"'

      輸出結(jié)果:

      $name\"

      顯示命令執(zhí)行結(jié)果

      echo `date`

      注意:這里使用的是反引號`,而不是單引號'。

      結(jié)果將顯示當(dāng)前日期

      Wednesday March 20 12:21:28 CST 2019

      常用情景

      Linux的echo命令, 在shell編程中極為常用, 在終端下打印變量value的時候也是常常用到。

      比如:echo可用作顯示注釋,用于一些批命令中需要注釋給用戶看的地方,比如前一條命令執(zhí)行會花很長時間,常會用echo顯示一條信息讓用戶知道這個時候比較慢,稍微等待一會。

      在Linux中echo命令用來在標(biāo)準(zhǔn)輸出上顯示一段字符,比如:

      echo "the echo command test!"

      這個就會輸出“the echo command test!”這一行文字!

      echo "the echo command test!">a.sh

      這個就會在a.sh文件中輸出“the echo command test!”這一行文字!該命令的一般格式為:echo [ -n ] 字符串其中選項(xiàng)n表示輸出文字后不換行;字符串能加引號,也能不加引號。用echo命令輸出加引號的字符串時,將字符串原樣輸出;用echo命令輸出不加引號的字符串時,將字符串中的各個單詞作為字符串輸出,各字符串之間用一個空格分割。

      Shell printf 命令

      使用printf的腳本比使用echo移植性好。printf 使用引用文本或空格分隔的參數(shù),外面可以在printf中使用格式化字符串,還可以制定字符串的寬度、左右對齊方式等。默認(rèn)printf不會像 echo 自動添加換行符,我們可以手動添加 \n。

      printf 命令的語法:

      printf format-string [arguments...]

      參數(shù)說明:

      format-string: 為格式控制字符串

      arguments: 為參數(shù)列表。

      實(shí)例如下:

      $ echo "Hello, Shell"

      Hello, Shell

      $ printf "Hello, Shell\n"

      Hello, Shell

      $

      接下來,我來用一個腳本來體現(xiàn)printf的強(qiáng)大功能:

      #!/bin/bash

      # author: Agile Tao

      printf "%-10s %-8s %-4s\n" 姓名 性別 體重kg

      printf "%-10s %-8s %-4.2f\n" 楊球 男 72.1234

      printf "%-10s %-8s %-4.2f\n" 武松 男 38.6543

      printf "%-10s %-8s %-4.2f\n" 歐陽克 女 22.9876

      執(zhí)行腳本,輸出結(jié)果如下所示:

      姓名 性別 體重kg

      楊球 男 72.12

      武松 男 38.65

      歐陽克 女 22.99

      %s %c %d %f都是格式替代符

      %-10s 指一個寬度為10個字符(-表示左對齊,沒有則表示右對齊),任何字符都會被顯示在10個字符寬的字符內(nèi),如果不足則自動以空格填充,超過也會將內(nèi)容全部顯示出來。

      %-4.2f 指格式化為小數(shù),其中.2指保留2位小數(shù)。

      %d %s %c %f 格式替代符詳解

      d:Decimal 十進(jìn)制整數(shù) 對應(yīng)位置參數(shù)必須是十進(jìn)制整數(shù),否則報錯!

      s:String 字符串 對應(yīng)位置參數(shù)必須是字符串或者字符型 否則報錯

      c:Char 字符 對應(yīng)位置參數(shù)必須是字符串或者字符型 否則報錯

      f: Float 浮點(diǎn) 對應(yīng)位置參數(shù)必須是數(shù)字型 否則報錯

      實(shí)例:

      #!/bin/bash

      # author:Agile Tao

      # format-string為雙引號

      printf "%d %s\n" 1 "abc"

      # 單引號與雙引號效果一樣

      printf '%d %s\n' 1 "abc"

      # 沒有引號也可以輸出

      printf %s abcdef

      # 格式只指定了一個參數(shù),但多出的參數(shù)仍然會按照該格式輸出,format-string 被重用

      printf %s abc def

      printf "%s\n" abc def

      printf "%s %s %s\n" a b c d e f g h i j

      # 如果沒有 arguments,那么 %s 用NULL代替,%d 用 0 代替

      printf "%s and %d \n"

      執(zhí)行腳本,輸出結(jié)果如下所示:

      1 abc

      1 abc

      abcdefabcdefabc

      def

      a b c

      d e f

      g h i

      j

      and 0

      printf的轉(zhuǎn)義序列

      序列說明

      \a 警告字符,通常為ASCII的BEL字符

      \b 后退

      \c 抑制(不顯示)輸出結(jié)果中任何結(jié)尾的換行字符(只在%b格式指示符控制下的參數(shù)字符串中有效),而且,任何留在參數(shù)里的字符、任何接下來的參數(shù)以及任何留在格式字符串中的字符,都被忽略

      \f 換頁(formfeed)

      \n 換行

      \r 回車(Carriage return)

      \t 水平制表符

      \v 垂直制表符

      \\ 一個字面上的反斜杠字符

      \ddd 表示1到3位數(shù)八進(jìn)制值的字符。僅在格式字符串中有效

      \0ddd 表示1到3位的八進(jìn)制值字符

      實(shí)例

      $ printf "a string, no processing:<%s>\n" "X\nY"

      a string, no processing:<X\nY>

      $ printf "a string, no processing:<%b>\n" "X\nY"

      a string, no processing:<X

      Y>

        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多