linux命令中的%U是什么意思

linux命令中的%U是什么意思,第1张

%U是linux下.desktop文件中Exec关键字的一个形式参数,用来描述如何处理可执行程序的实际输入参数:

%u 代表一个URL。也可以是一个本地文件路径。

%U 代表一系列URL,其中每一个URL作为一个单独的参数传递给可执行程序。也可以是一系列本地文件路径。

例如 /usr/share/applications/gedit.desktop 文件中包含:

Exec=gedit %U

这表示gedit的参数将被视为一系列URL(或者文件路径)。

Linux系�».shell工具打印输出

shell脚本都是以#!/bin/bash开头;这是固定的写法,其中/bin/bash是bash命令的路径。那么Linux系统shell工具如何打印输出呢?跟我一起来看看吧!

一般都会通过chmod授予shell脚本的可执行权限。

在shell脚本中的打印输出通常会有echo和printf两种,前者会自动换行。

在shell中如果用双引号("")作为打印输出的内容时,如果双引号中有特殊字符需要在特殊字符前加上转义字符\,当然也可以使用单引号或者不使用引号直接输出,使用单引号或者不使用就不需要用到转义字符。

格式替代符

有一些常用的格式替代符会经常在打印输出中被用到,格式替代符只能用在printf输出中。

%-5s:表示5个字符宽度,其中的-表示左对齐

%-4.2f:其中的f表示浮点型,4.2代表长度为4个字符且小数点2位,如果小数点超过2会进行四舍五入,-表示左对齐。

整形:

%d:整数的参数会被转成一有符号的十进制数字

%u:整数的参数会被转成一无符号的十进制数字

%o:整数的参数会被转成一无符号的八进制数字

%x:整数的参数会被转成一无符号的十六进制数字,并以小写abcdef表示

%X:整数的参数会被转成一无符号的十六进制数字,并以大写ABCDEF表示

浮点型数:

%fdouble型的参数会被转成十进制数字,默认取小数点以下六位,四舍五入

%edouble型的参数以指数形式打印,有一个数字会在小数点前,六位数字在小数点后,而在指数部分会以小写的e来表示.

%E与%e作用相同,唯一区别是指数部分将以大写的'E来表示.

%gdouble型的参数会自动选择以%f或%e的格式来打印,其标准是根据欲打印的数值及所设置的有效位数来决定.

%G与%g作用相同,唯一区别在以指数形态打印时会选择%E格式.

字符及字符串:

%c读字符串的第一个字符

%s输出指定宽度的字符内容.

%p如果是参数是"void*"型指针则使用十六进制格式显示

打印输出

在写脚本的时候更多的会使用echo作为打印输出,且习惯性的会使用双引号。

echo

[root@localhosttmp]#echo"helloword"

helloword

printf

默认printf是不换行的

[root@localhosttmp]#printf"helloword"

helloword[root@localhosttmp]#

需要换行加上\n参数

[root@localhosttmp]#printf"helloword\n"

helloword

[root@localhosttmp]#

编写shell脚本

vimscrip.sh

#!/bin/bash

printf"%-5s%-10s%-4s\n"NoNameMark

printf"%-5s%-10s%-4.2f\n"1aaa10.111

printf"%-5s%-10s%-4.2f\n"2bbb20.146

授予脚本执行权限:chmodu+xscrip.sh

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

#!/bin/bash

echoNoNameMark

echo1aaa10.111

echo2bbb20.146

注意事项

在echo,printf中使用-e,-n参数时,-e,-n应该出现在命令行其它字符之前。

-e:如果要在echo的双引号使用转义序列作为参数得需要使用-e参数

-n:忽略末尾的换行符

不使用-e参数

[root@localhosttmp]#echo"1\n2"

1\n2

使用-e参数

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

转义序列:

/n:换行

/t:tab键

彩色输出

字体颜色包括:0=重置,30=黑色,31=红色,32=绿色,33=黄色,34=蓝色,35=洋红,36=青色,37=白色

背景颜色包括:0=重置,40=黑色,41=红色,42=绿色,43=黄色,44=蓝色,45=洋红,46=青色,47=白色

echo-e"\e[132mhelloword\e[0m"

\e[132m:将字体颜色设为绿色,\e[0m:将颜色重置

awk格式:前面接触到的awk的输出功能,是{print}的功能,只能对文本简单的输出,并不能美化或修改格式

printf格式化输出:对文本格式化输出

printf和print的区别:format的使用

要点

1、其与print命令的最大不同是,printf需要指定format

2、format用于指定后面的每个item的输出格式

3、printf语句不会自动打印换行符;\nprint默认添加空格换行符

format格式的指示符都以%开头,后跟一个字符

%c 显示字符的ASCII码

%d, %i 十进制整数

%e, %E 科学计数法显示数值

%f 显示浮点数

%g, %G 以科学计数法的格式或浮点数的格式显示数值

%s 显示字符串

%u 无符号整数

%% 显示%自身

printf修饰符

- 左对齐;默认右对齐

+ 显示数值符号;printf "%+d"

给printf添加格式

格式化字符串%s代表字符串的意思

awk '{printf "%s\n",$1}' file

对对个变量进行格式化

当我们使用Linux命令printf时,一个%s格式替换符,可以对多个参数进行重复格式化

printf "%s\n" a b c d

然而awk的格式替换符想要修改多个变量,必须传入多个

awk 'BEGIN{printf "%d\n%d\n%d\n%d\n%d\n",1,2,3,4,5}'

注意awk不跟上文件数据,必须添加BEGIN, %d代表的是十进制数字

awk通过空格切割文档,printf动作对数据格式化输出

awk '{printf "第一列:%s第二列:%s第三列:%s\n", 2,$3}' file

对pwd.txt进行格式化输出

awk -F ":" 'BEGIN{printf

"%-25s\t %-25s\t %-25s\t %-25s\t %-25s\t %-25s\t %-25s\n",

"用户名","密码","UID","GID","用户注释","用户家目录","用户使用的解释器"}

{printf "%-25s\t %-25s\t %-25s\t %-25s\t %-25s\t %-25s\t %s\n",

2, 4, 6,$7}'

pwd.txt

参数解释

'BEGIN{printf "格式替换符 格式替换符2","变量1","变量2"}' 执行BEGIN模式

"%-25s\t %-25s\t %-25s\t %-25s\t %-25s\t %-25s\t %-25s\n" 先打印第一行信息

%s是格式替换符 ,替换字符串

%s\t 格式化字符串后,添加制表符,四个空格

%-25s 已然是格式化字符串, - 代表左对齐 ,25个字符长度

printf对输出的文本不会换行,必须添加对于的格式替换符和\n

使用printf动作,'{printf "%s\n",$1}',替换的格式和变量之间得有逗号

使用printf动作,%s %d 等格式化替换符,必须和被格式化的数据一一对应


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/6216170.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-18
下一篇 2023-03-18

发表评论

登录后才能评论

评论列表(0条)

保存