一、printf的基本用法
printf命令是Linux下常見的輸出命令,其可以將指定的字符串或變量輸出到標準輸出設備或文件中。printf命令輸出的格式可以使用格式化字符串控制,從而實現精準的輸出。
printf命令的基本用法如下:
printf format-string [arguments...]
其中,format-string是格式化字符串,arguments是需要輸出的參數。printf命令會按照format-string的格式,將arguments中的參數逐一輸出。
下面是一個簡單的例子:
#!/bin/bash name="Linux" printf "Hello, %s!\n" $name
在上面的例子中,我們定義了一個變量name,其值為Linux。然後使用printf命令輸出了一個字符串,其中%s表示一個字符串佔位符,後面的$name表示實際的參數值。
執行上述腳本,會輸出以下內容:
Hello, Linux!
二、printf的格式化字符串
printf命令中的格式化字符串可以包含一些轉義符,用於控制輸出的格式。下面列舉一些常見的轉義符:
- %c:輸出一個字符。
- %s:輸出一個字符串。
- %d:輸出一個十進制數。
- %x:輸出一個十六進制數。
- %f:輸出一個浮點數。
- %e:使用科學計數法輸出一個浮點數。
- %o:輸出一個八進制數。
- %%:輸出一個%號。
下面是一個使用格式化字符串的例子:
#!/bin/bash name="Linux" age=18 printf "My name is %s, and I'm %d years old.\n" $name $age
執行上述腳本,會輸出以下內容:
My name is Linux, and I'm 18 years old.
三、printf的寬度和精度控制
printf命令中還可以通過以下方式控制寬度和精度:
- %m.n:m為輸出寬度,n為小數點後面的位數。
- %-m.n:左對齊輸出。
下面是一個使用寬度和精度控制的例子:
#!/bin/bash name="Linux" age=18 price=3.1415926 printf "My name is %10s, and I'm %d years old.\n" $name $age printf "Price: %6.2f\n" $price
執行上述腳本,會輸出以下內容:
My name is Linux, and I'm 18 years old. Price: 3.14
四、應用實例
printf命令在實際應用中十分常見,下面列舉一些實際應用實例。
1、輸出文件大小:
#!/bin/bash filesize=$(du -h file.txt | awk '{print $1}') printf "File size is: %s\n" $filesize
執行上述腳本,會輸出以下內容:
File size is: 358M
2、輸出腳本執行時間:
#!/bin/bash start=$(date +%s) # 一些耗時操作 end=$(date +%s) printf "Script execution time: %d seconds.\n" $((end-start))
執行上述腳本,會輸出以下內容:
Script execution time: 10 seconds.
3、輸出系統信息:
#!/bin/bash cpu=$(cat /proc/cpuinfo | grep -m 1 "model name" | awk -F':' '{print $2}') memory=$(free -h | awk '/Mem/{print $2}') disk=$(df -h | awk '/\/$/{print $3}') printf "CPU: %s\nMemory: %s\nDisk: %s\n" $cpu $memory $disk
執行上述腳本,會輸出以下內容:
CPU: Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz Memory: 16G Disk: 29G
五、總結
本文介紹了printf命令的基本用法、格式化字符串、寬度和精度控制以及一些實際應用實例。printf命令在Shell腳本中使用十分廣泛,通過了解其基本用法和格式化字符串,可以提高腳本輸出的精度和可讀性,從而更好地完成腳本任務。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/201186.html