如果你连Shell的基本输出命令都不会使用,那么确实很难写出有意义的Shell脚本。`echo` 和 `printf` 是Shell中用于输出的两个基本命令,它们可以帮助你向终端显示信息。下面是对这两个命令的简单总结:
### echo
`echo` 是一个非常常用的命令,用于在终端中输出文本。它的基本语法如下:
```sh
echo [选项] [字符串]
```
#### 常用选项:
- `-n`:不输出换行符。
- `-e`:启用转义字符的解释。
#### 示例:
```sh
echo "Hello, World!"
echo -n "This will not add a newline."
echo -e "This
is a test."
```
### printf
`printf` 是一个更强大的命令,它类似于C语言中的`printf`函数,可以格式化输出。它的基本语法如下:
```sh
printf [选项] 格式化字符串 [参数]
```
#### 常用选项:
- `-v`:将字符串放入竖直模式。
- `-s`:不输出结尾的换行符。
#### 格式化字符串中的转义字符:
- `
`:换行符。
- ` `:制表符。
- `%%`:输出一个百分号。
#### 示例:
```sh
printf "Hello, World!
"
printf "%s is %d years old.
"
相关内容:
rc="https://p3-sign.toutiaoimg.com/tos-cn-i-axegupay5k/2f7cb7dd5d1a4fd58fb8d41959c5b64c~tplv-tt-origin-web:gif.jpeg?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1766182445&x-signature=ya4uajhgD1fGSLax4fvUzAZQrEY%3D">lass="xiangguan" id="content">在 Linux 系统中使用 echo 命令和 printf 命令都可以实现信息的输出功能,下面我们分别看这两个命令的应用案例。echo
1.使用 echo 命令创建一个脚本文件菜单功能描述:echo 命令主要用来显示字符串信息, 语法格式如下:
echo 字符串
比如创建一个简单的菜单展示页面:#!/bin/bash
echo "1.查看网卡信息"
echo "2.查看内存信息"
echo "3.查看磁盘信息"
……
2.echo默认的命令有些单调,默认以黑色字输出、无法居中展示。echo 命令支持-e 选项,使用该选项可以让 echo 命令识别后面的转义符号含义,其中033 或e 后面可以跟上终端编码,终端编码可以用于定义终端的字体颜色、背景颜色、定位光标等,从而丰富我们的使用体验。
b 退格键(Backspace)
f 换行但光标仍停留在原来的位置
换行且光标移至行首
r 光标移至行首,但不换行
插入Tab键
打印
033或e 设置终端属性,如字体颜色、背景颜色、定位光标等
比如用上面的常用的转义符号来演示:正常情况
# echo "hello world"
hello world
-b
# 退格键(Backspace)
# echo -e "hellobworld"
hellworld
#
# echo -e "hellebbo world"
helo world
-f
# 换行但光标停留在原来的位置
# echo -e "hellofworld"
hello
world
#
-t
# 插入Tab键
# echo -e "hello world"
hello world
设置终端属性
# echo -e "033# echo -e "e# echo -e "e# echo -e "e# echo -e "e# echo -e "e# echo -e "e# echo -e "e# echo -e "e# echo -e "e# echo -e "e# echo -e "e# echo -e "e# echo -e "e# echo -e "e# echo -e "e# echo -e "033# echo -e "033 参数
一般 printf 参数就是要输出的内容,可以搭配的格式如下:%d或%i 十进制整数
%o 八进制整数
%x 十六进制整数
%u 无符号十进制整数
%f 浮点数(小数点数)
%s 字符串
b 退格键(Backspace)
f 换行但光标仍停留在原来的位置
换行且光标移至行首
r 光标移至行首,但不换行
Tab键
效果演示:%d或%i %o %x
# 以下进制均不带换行符
# 10进制
# printf "%d" 12
12#
# 在12前空出5个字符
# printf "%5d" 12
12#
# 在12后空出5个字符
# printf "%-5d" 12
12 #
# 八进制整数
# printf "%o" 12
14#
# 十六进制整数
# printf "%x" 12
c#
# 无符号10进制整书,拥有最大值,超过无法打印记
# printf "%ud" 9223372036854775808
9223372036854775808d#
# 加上换行
# printf "%d
" 12
12
#
f
# 换行后停留在原来的位置上
# printf "%df" 12
12
#
%f
# 打印小数
# printf "%f
" 1.11
1.110000
#
# 保留小数点后三位
# printf "%.3f
" 1.11
1.110
#
# 右对齐8个宽度
# printf "|%8.3f|
" 1.11
| 1.110|
#
# 左对齐8个宽度
# printf "|%-8.3f|
" 1.11
|1.110 |
#
%s
# 打印字符串
# printf "%s
" "hello"
hello
#
# 右对齐
# printf "|%8s|
" "hello"
| hello|
#
# 左对齐
# printf "|%-8s|
" "hello"
|hello |
#
2.用printf编写一个菜单#!/bin/bash
clear
printf "e[42m%s
e[0m" "---------------------------------"
printf "e[2;10H%s
" "这里是菜单"
printf "e[32m%se[0m
" "1.查看网卡信息"
printf "e[35m%se[0m
" "2.查看内存信息"
printf "e[36m%se[0m
" "3.查看磁盘信息"
printf "e[34m%se[0m
" "4.查看 CPU 信息"
printf "e[33m%se[0m
" "5.查看账户信息"
printf "e[42m%s
e[0m" "---------------------------------"
echo
欢迎关注评论!

微信扫一扫打赏
支付宝扫一扫打赏