shell学习之printf命令格式化输出语句
简介
printf 命令用于格式化输出, 是echo命令的增强版。它是C语言printf()
库函数的一个有限的变形,并且在语法上有些不同。
注意:printf 由 POSIX 标准所定义,移植性要比 echo 好。
如同 echo 命令,printf 命令也可以输出简单的字符串:
$printf "Hello, Shell\n" Hello, Shell $
printf 不像 echo 那样会自动换行,必须显式添加换行符(\n)。
printf 命令的语法:
printf format-string [arguments...]
format-string 为格式控制字符串,arguments 为参数列表。
将数组信息以多行格式输出
# A=(1 2 3) && echo ${A[@]} 1 2 3
如何输出为:
1 2 3
# A=(1 2 3) && printf "%s\n" ${A[@]} 1 2 3
strace 跟踪多个进程
strace是所有linux程序员都应该熟练掌握的工具,该命令可以strace -p $pid1 -p $pid2
跟踪一个或多个正在运行的进程,跟踪一个进程还好;当我们想strace httpd的所有进程时,我们可以pidof httpd拿到所有的pid,但是不能直接使用,需要在每个pid前面添加-p
,用 while
循环可以做到,如下:
strace $(pidof httpd | while read pid; do echo -n " -p $pid " ; done)
倒是也不长,其实有更简单的办法:
strace $(pidof httpd | xargs printf ' -p %s ')
如果我们已经将pid信息存到了$pids中了,那么可以:
printf ' -p %s ' $pids
pids=$(pidof httpd); strace $(printf ' -p %s ' $pids)
注意:printf 参数中的 -p
最好不要顶着头写 (不过这个在使用xargs的时候不存在这个问题)
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
相关推荐
-
用shell命令读取与输出数据的代码
shell脚本读取数据有以下几种方式:1.键盘输入,默认2.从文件中读取3.通过管道命令传递 echo的功能:\c :不换行\f :进纸\t :跳格\n :换行\表示转义,例如:"\"/dev/rmt0"\"翻译为,"/dev/rmt0" read:从键盘或文件的某一行文本中读取信息,并将其赋给一个变量. 复制代码 代码如下: [jb51]/>read namehello i am a regular user[jb51]/>echo
-
远程linux xshell下输出中文乱码解决方法
使用xshell登录中文版CentOS或者redhat时,在xshell下如果输出的是中文的话可能会显示乱码,通过如下办法可以有效的解决乱码问题 linux中文乱码解决方法如下: 复制代码 代码如下: [root@localhost ~]# cd /etc/sysconfig/ [root@localhost sysconfig]# cp i18n i18n.bak #备份i18n文件 [root@localhost sysconfig]# echo "" >i18n [root
-
linux shell的输出效果修改方法(界面颜色)
文本终端的颜色可以使用"ANSI非常规字符序列"来生成.举例: echo -e "\033[44;37;5m ME \033[0m COOL" 以上命令设置背景成为蓝色,前景白色,闪烁光标,输出字符"ME",然后重新设置屏幕到缺省设置,输出字符 "COOL"."e"是命令 echo 的一个可选项,它用于激活特殊字符的解析器."\033"引导非常规字符序列."m"意味着
-
Shell脚本对文件中的行、单词、字符进行迭代输出示例
在进行文本文件进行处理时,对文件件中的行.单词.字符进行迭代和遍历是非常常用的操作.而将一个简单的循环用于迭代,再加上来自stdin或文件的重定向,这就是对文件中的行.单词.和字符进行迭代的基本方法. 废话不多说,马上来看看怎么样实现吧. 1.迭代文中的每一行 使用while循环从标准输入中读取,因为要在标准输入中读取,就要对文件进行重定向,使它重定向到stdin中,代码如下: 复制代码 代码如下: while read line; do echo $line; done < file.t
-
关于shell命令的定向输出 2>&1
mycommand >mylog.txt 2>&1 应该是最经典的用法了. 命令的结果可以通过"%>"的形式来定向输出,%表示文件描述符:1为标准输出stdout.2为标准错误stderr.系统默认%值是1,也就是"1>",而1>可以简写为>,也就是默认为>.stdout的默认目标是终端,stderr的默认目标为也是终端.我们在批处理中执行: echo text >result.txt ,我们就可以在屏幕上会看
-
linux c程序中获取shell脚本输出的实现方法
1. 前言Unix界有一句名言:"一行shell脚本胜过万行C程序",虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作.比如实现一个ping程序来测试网络的连通性,实现ping函数需要写上200~300行代码,为什么不能直接调用系统的ping命令呢?通常在程序中通过 system函数来调用shell命令.但是,system函数仅返回命令是否执行成功,而我们可能需要获得shell命令在控制台上输出的结果.例如,执行外部命令ping后,如果执行失败,我们希望得到p
-
神奇的shell命令行输入与输出功能介绍
标准输入/输出和重定向,Linux发行版Fedora Core Linux,而Red Hat公司原来Red Hat Linux的开发团队也将继续参与这一发行版本的开发工作. 标准输入与输出 我们知道,执行一个shell命令行时通常会自动打开三个标准文件,即标准输入文件(stdin),通常对应终端的键盘:标准输出文件(stdout)和标准错误输出文件(stderr),这两个文件都对应终端的屏幕.进程将从标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中.
-
一个简单的转换输出的shell脚本代码
一个简单的转换输出的shell脚本,从健盘输入 a,b,c 这种格式 输出如下格式:a c 复制代码 代码如下: #!/bin/bashread -p '请输入:'echo $REPLY >.tmp5count=`grep -o ',' .tmp5 |wc -l`echo $countcount_=$((count+1))i=1:>.tmp1while [ $i -le $count_ ]do echo $i awk -F, -v j="$i" '{print$
-
shell脚本echo输出不换行功能增强实例
这是第8/101个脚本 There are as many ways to solve this quirky echo problem as there are pages in this book. One of my favorites is very succinct: function echon { echo "$*" | awk '{ printf "%s" $0 }' } You may prefer to avoid the overhead in
-
shell学习之printf命令格式化输出语句
简介 printf 命令用于格式化输出, 是echo命令的增强版.它是C语言printf()库函数的一个有限的变形,并且在语法上有些不同. 注意:printf 由 POSIX 标准所定义,移植性要比 echo 好. 如同 echo 命令,printf 命令也可以输出简单的字符串: $printf "Hello, Shell\n" Hello, Shell $ printf 不像 echo 那样会自动换行,必须显式添加换行符(\n). printf 命令的语法: printf form
-
Linux下date命令,格式化输出,时间设置方法
date命令的帮助信息 [root@localhost source]# date --help 用法:date [选项]... [+格式] 或:date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] 以给定的格式显示当前时间,或是设置系统日期. -d,--date=字符串 显示指定字符串所描述的时间,而非当前时间 -f,--file=日期文件 类似--date,从日期文件中按行读入时间描述 -r, --reference=文件 显示文件指定文件的
-
shell 脚本中获取命令的输出的实现示例
这个主要介绍的方法是获取命令的输出内容,而不是命令执行成功与否的返回值. 通常情况下,在shell脚本中需要获取命令的输出内容,然后根据输出内容判断下一步的执行操作. 比较常用的一种方式就是, 匹配命令输出的内容中是否存在某些关键字,选择执行的不同动作.比较常用的一种方式就是采用反向单引号的方式 -- 保存结果的变量名=`需要执行的linux命令` 这种方式在使用时,有些细节的地方需要注意. 先用几个例子来说明一下. 比如在CentOS7环境中,使用rpm -qa命令查询某些rpm包是否安装,
-
shell(bash)下“time” 命令的输出详解
前言 相信大家都知道bash下time是一个很有用的命令,它可以为一段脚本或一个程序的执行计时,这通常在粗略比较程序执行效率的时候很方便.但是你会发现,time命令输出的时间文字不能被简单地重定向,例如重定向至一个文本文件,只能显示在屏幕上,这对于非交互计时很不方便. 例如: $ time find . -name "mysql.sh" >1.txt real 0m0.081s user 0m0.060s sys 0m0.020s $ time find . -name &quo
-
Linux 命令行工具解析和格式化输出 JSON的方法
JSON 是一种轻量级且与语言无关的数据存储格式,易于与大多数编程语言集成,也易于人类理解 -- 当然,如果格式正确的话.JSON 这个词代表 J ava S cript O bject N otation,虽然它以 JavaScript 开头,而且主要用于在服务器和浏览器之间交换数据,但现在正在用于许多领域,包括嵌入式系统.在这里,我们将使用 Linux 上的命令行工具解析并格式化打印 JSON.它对于在 shell 脚本中处理大型 JSON 数据或在 shell 脚本中处理 JSON 数据非
-
浅谈Python 字符串格式化输出(format/printf)
Python 字符串格式化使用 "字符 %格式1 %格式2 字符"%(变量1,变量2),%格式表示接受变量的类型.简单的使用例子如下: # 例:字符串格式化 Name = '17jo' print 'www.%s.com'%Name >> www.17jo.com Name = '17jo' Zone = 'com' print 'www.%s.%s'%(Name,Zone) >> www.17jo.com 字符串格式化时百分号后面有不同的格式符号,代表
-
Shell脚本的条件控制和循环语句
条件判断:if语句 语法格式: if [ expression ] then Statement(s) to be executed if expression is true fi 注意:expression 和方括号([ ])之间必须有空格,否则会有语法错误. if 语句通过关系运算符判断表达式的真假来决定执行哪个分支.Shell 有三种 if ... else 语句: if ... fi 语句 if ... else ... fi 语句 if ... elif ... else ... f
-
C语言新手入门之格式化输出和变量类型
前言 C语言作为编程的入门语言,谁都想快一点学会这门编程语言,本文详细介绍了关于C语言格式化输出和变量类型的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 格式化输出 在PHP里面,我们一般都是用echo和var_dump以及print_r等来输出调试语句,在C语言中一般用printf来输出,不过由有点特殊,你需要在输出的时候指定输出的数据类型: #include <stdio.h> int main(){ int age = 10; printf("I
-
详解C++ cout格式化输出完全攻略
写算法题的时候突然发现自己忘记基本的C++:cout格式化输出了,赶紧拉出以前的C++学习笔记重新看一看. 部分内容来自教程:C语言中文网(一个很棒的网站) 有时希望按照一定的格式进行输出,如按十六进制输出整数,输出浮点数时保留小数点后面两位,输出整数时按 6 个数字的宽度输出,宽度不足时左边补 0,等等.C语言中的 printf() 函数使用以%开头的格式控制符,例如 %X.%.2f.%6d 等:C++ 中的 cout 对象则使用流操作算子(你也可以叫做格式控制符)或者成员函数进行控制. 使用
-
linux Shell学习笔记第一天
以下是Shell学习1-2天学习笔记 ---------我是分隔符--------- 硬件去执行, 内核与硬件之间进行操作. 命令解析器. shell脚本的组成元素 系统命令 文本处理工具(sort.grep.sed.awk-) 变量 条件判断 环循结构 函数 Shell Scripts Center(SSC) ---------------------------- 非负Grep / awk 几天. 统计Wc Sort 排序 sort|head / sed字段处理 awk 数据区域判断 awk
随机推荐
- XP打印共享四大问题及解决方法
- python使用fcntl模块实现程序加锁功能示例
- iOS保存App中的照片到系统相册或自建相册的方法
- js调用activeX获取u盘序列号的代码
- 浅谈.net平台下深拷贝和浅拷贝
- 关于Intype一些小问题的解决办法
- 数据库触发器(Trigger)的一点使用心得
- 浅谈Java后台对JSON格式的处理操作
- PHP在引号前面添加反斜杠(PHP去除反斜杠)
- springmvc+spring+mybatis实现用户登录功能(下)
- 详解PHP中的状态模式编程
- javascript禁制后退键(Backspace)实例代码
- javascript下4个跨浏览器必备的函数
- 区分WCF与WebService的异同、优势
- python编程实现12306的一个小爬虫实例
- java学生信息管理系统源代码
- 浅谈java IO流——四大抽象类
- flask框架实现连接sqlite3数据库的方法分析
- 如何让node运行es6模块文件及其原理详解
- spring级联属性赋值的两种方式解析