Linux shell之列印輸出

2022-01-22 06:20:44 字數 2485 閱讀 8468

經常需要和shell命令打交道,但是一直沒有系統的學習,接下來會花1到2個月的時間系統的學習一下shell命令,接下來就開啟shell命令的奇妙旅行吧。本章主要介紹shell的列印輸出。

知識要點

格式替代符

有一些常用的格式替代符會經常在列印輸出中被用到,格式替代符只能用在printf輸出中。

%-5s:表示5個字元寬度,其中的-表示左對齊

%-4.2f:其中的f表示浮點型,4.2代表長度為4個字元且小數點2位,如果小數點超過2會進行四捨五入,-表示左對齊。

整形:

%d:整數的引數會被轉成一有符號的十進位制數字

%u:整數的引數會被轉成一無符號的十進位制數字

%o:整數的引數會被轉成一無符號的八進位制數字

%x:整數的引數會被轉成一無符號的十六進製制數字, 並以小寫abcdef表示

%x:整數的引數會被轉成一無符號的十六進製制數字, 並以大寫abcdef表示

浮點型數

%f double型的引數會被轉成十進位制數字, 預設取小數點以下六位, 四捨五入

%e double型的引數以指數形式列印, 有乙個數字會在小數點前, 六位數字在小數點後, 而在指數部分會以小寫的e來表示.

%e 與%e作用相同, 唯一區別是指數部分將以大寫的e來表示.

%g double型的引數會自動選擇以%f或%e的格式來列印, 其標準是根據欲列印的數值及所設定的有效位數來決定.

%g 與%g作用相同, 唯一區別在以指數形態列印時會選擇%e格式.

字元及字串:

%c 讀字串的第乙個字元 

%s 輸出指定寬度的字元內容.

%p 如果是引數是"void *"型指標則使用十六進製制格式顯示

列印輸出

在寫指令碼的時候更多的會使用echo作為列印輸出,且習慣性的會使用雙引號。

echo

[root@localhost tmp]# echo "hello word"

hello word

printf

預設printf是不換行的

[root@localhost tmp]# printf "hello word"

hello word[root@localhost tmp]#

需要換行加上\n引數

[root@localhost tmp]# printf "hello word\n"

hello word

[root@localhost tmp]#

編寫shell指令碼

vim scrip.sh

#!/bin/bash

printf "%-5s %-10s %-4s\n" no name mark;

printf "%-5s %-10s %-4.2f\n" 1 aaa 10.111;

printf "%-5s %-10s %-4.2f\n" 2 bbb 20.146;

授予指令碼執行許可權:chmod u+x scrip.sh

如果使用echo就不能用格式替代符

注意事項

在echo,printf中使用-e,-n引數時,-e,-n應該出現在命令列其它字元之前。

-e:如果要在echo的雙引號使用轉義序列作為引數得需要使用-e引數

-n:忽略末尾的換行符

不使用-e引數

[root@localhost tmp]# echo "1\n2"

1\n2

使用-e引數

[root@localhost tmp]# echo -e "1\n2"

12

轉義序列:

/n:換行

/t:tab鍵

彩色輸出

字型顏色包括:0=重置,30=黑色,31=紅色,32=綠色,33=黃色,34=藍色,35=洋紅,36=青色,37=白色

背景顏色包括:0=重置,40=黑色,41=紅色,42=綠色,43=黃色,44=藍色,45=洋紅,46=青色,47=白色

\e[1;32m:將字型顏色設為綠色,\e[0m:將顏色重置

如果輸出的內容涉及到特殊字元建議使用printf來輸出。

自學Swift之列印輸出

print 不換行輸出 println 換行輸出 print 和 println 函式可以直接列印基本型別 var num 10 println hello string num 方式1 其他型別同string輸出的時候需要強轉 println hello num 方式2 括號中為定義好的變數或常量...

Python之列印輸出稜形

列印輸出稜形 這裡是一段防爬蟲文字,請讀者忽略。本文原創首發於csdn,作者idys 部落格首頁 稜形上下三角形對稱,所以上面列印出朝上的三角形,下面列印出朝下的三角形 三角形由和 組成 def demo04 i 1 length int input 請輸入長度 while i length pri...

列印輸出部門結構

列印出部門結構 如下 連線資料庫,並且獲取資料。link mysqli connect localhost mysqli select db link,test sql select from print where 1 retval mysqli query link,sql array arra...