一、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/n/201186.html