shell之输出

echo printf
printf命令模仿C程序库(library)里的printf()库程序(library
routine)。它几乎复制了
该函数的所有功能。不过在Shell层级的版本上,会有些差异。由于printf的行为是由POSIX
标准所定义,因此使用printf的脚本比使用echo移植性好。
如同echo命令,printf命令可以输出简单的字符串:
[[email protected]
~]#printf "Hello, Shell\n"
Hello, Shell
[[email protected] ~]#

你应该可以马上发现,最大的不同在于:printf不像echo那样会自动提供一个换行符号。你必须显式
地将换行符号指定成\n。
echo -n
"Enter your name:"
//参数-n的作用是不换行,echo默认是换行
要使转义符生效,需加参数-e
在echo命令输出之后附加换行,可以使用\n选项:
$ cat
>echo
#!/bin/bash
echo -e "this echo‘s 3 new lines\n\n\n"
echo
"OK"
$ echo "The log files have all been done" >myfile
$ echo "$LOGNAME
carried them out at `date`" >>myfile
$ echo
"\"/dev/rmt0"\"
"/dev/rmt0"
事实上,echo 除了 -n options 之外,常用选项还有:
-e
:启用反斜线控制字符的转换(参考下表)
-E :关闭反斜线控制字符的转换(预设如此)
-n :取消行末之换行符号(与 -e 选项下的 c
字符同意)

关于 echo 命令所支持的反斜线控制字符如下表:
\a:ALERT / BELL (从系统喇叭送出铃声)
\b:BACKSPACE
,也就是向左删除键
\c:取消行末之换行符号
\E:ESCAPE,跳脱键
\f:FORMFEED,换页字符

\n:NEWLINE,换行字符
\r:RETURN,回车键
\t:TAB,表格跳位键
\v:VERTICAL
TAB,垂直表格跳位键
:ASCII 八进位编码(以 x 开首为十六进制) :反斜线本身
$ echo -e
"a\tb\tc\nd\te\tf"
a b c
d e f

上例运用 \t 来区隔 abc 还有 def ,及用\n 将 def 换至下一行。

例二:

$ echo -e "\141\011\142\011\143\012\144\011\145\011\146"
a b
c
d e f

与例一的结果一样,只是使用 ASCII 八进位编码。

例三:

$ echo -e "\x61\x09\x62\x09\x63\x0a\x64\x09\x65\x09\x66"
a b
c
d e f

与例二差不多,只是这次换用 ASCII
十六进制编码。
测试变量是否已经设置
有时要测试是否已设置或初始化变量。如果未设置或初始化,就可以使用另一值。此命令格式为:
$ { v a
r i a b l e : - v a l u e }
意即如果设置了变量值,则使用它,如果未设置,则取新值。例如:
$
COLOUR=blue
$ echo "The sky is ${COLOR:-grey} today"
The sky is grey
today
变量c o l o u r取值b l u e,e c h o打印变量c o l o u
r时,首先查看其是否已赋值,如果查到,则使
用该值。变量$COLOR没有设置,所以会打印后面的grey

上面的例子并没有将实际值传给变量,需使用下述命令完成此功能:
$ { v a r i a b l e : = v a l u e
}
下面是一个更实用的例子。查询工资清单应用的运行时间及清单类型。在运行时间及类
型输入时,敲回车键表明用户并没有设置两个变量值,将使用缺省值( 0
3 : 0 0和We e k l y),并
传入a t命令中以按时启动作业。
#!/bin/bash
# vartest
echo
"what time do you wish start the payroll [03:00]:"
read TIME
echo "
process to start at ${TIME:=03:00} OK"
echo "Is it a monthly or weekly run
[Weekly]:"
read RUN_TYPE
echo "Run type is ${RUN_TYPE:=Weekly}‘
at -f
$RUN_TYPE $TIME
在输入域敲回车键,输出结果如下:
what time do you wish start the payroll
[03:00]:

process to start at 03:00 OK
Is it a monthly or weekly run [Weekly]:

Run type is Weekly

shell之输出,布布扣,bubuko.com

时间: 2024-10-07 18:39:53

shell之输出的相关文章

Shell 程序 输出重新定向

#!/bin/bash clear echo "" echo "Enter Your First Name:" read FirstName echo "Enter Your Last Name:" read LastName echo "$FirstName $LastName">trans.dat Shell 程序 输出重新定向,布布扣,bubuko.com

linux c程序中获取shell脚本输出的实现方法

linux c程序中获取shell脚本输出的实现方法 1. 前言Unix界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作.比如实现一个ping程序来测试网络的连通性,实现ping函数需要写上200~300行代码,为什么不能直接调用系统的ping命令呢?通常在程序中通过 system函数来调用shell命令.但是,system函数仅返回命令是否执行成功,而我们可能需要获得shell命令在控制台上输出的结果.例如,执行外部

inux C程序中获取shell脚本输出(如获取system命令输出)

转载自 http://blog.csdn.net/hjxhjh/article/details/7909518 1. 前言 Unix 界有一句名言:"一行shell脚本胜过万行C程序",虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作.比如实现一个 ping程序来测试网络的连通性,实现ping函数需要写上200~300行代码,为什么不能直接调用系统的ping命令呢?通常在程序中通过 system函数来调用shell命令.但是,system函数仅返回命令是否执行

python中得到shell命令输出的方法

python中得到shell命令输出的方法: 1. import subprocess output = subprocess.Popen(['ls','-l'],stdout=subprocess.PIPE,shell=True).commun icate() print output[0] 2. import commands return_code, output = commands.getstatusoutput('ls -l') 3. import os process = os.p

面试笔试-脚本-1:使用shell脚本输出登录次数最多的用户

原题目: 一个文本类型的文件,里面每行存放一个登陆者的IP(某些行是重复的),写一个shell脚本输出登陆次数最多的用户. 之前刚看到这个题目时,马上没有想到一行直接解决的办法,虽然知道可以先进行排序,但是后面由于对uniq命令的参数不熟悉,所以用了比较背的办法,就是直接编写shell脚本程序来解决这个问题. 现在假设测试数据如下: 111.111.111.111 10.10.10.10 222.222.222.222 111.111.111.111 333.333.333.333 10.10.

关于shell输入 输出重定向

一 下面是关于输入输出重定向的语法格式 二 概述输出输入重定向大于号> :表示输出重定向 (会覆盖原文件)小于号<:输入重定向 (如果你输入的是啥,那么就会显示输出的是啥,不会覆盖和追加到原文件里面)双大于号>>:(表示输出重定向,会在原文件的内容上追加内容) 三输出输入重定向的实际例子1.输出重定向说明:我们可以看出使用cat查看原文件的内容是"正在读安徒生",使用输出重定向后,查看原文件的内容变成"故事的小火柴".这足以说明使用输出重定向

shell--10、Shell 输入/输出重定向

大多数 UNIX 系统命令从你的终端接受输入并将所产生的输出发送回到您的终端.一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端.同样,一个命令通常将其输出写入到标准输出,默认情况下,这也是你的终端. 重定向命令列表如下: 命令 说明 command > file 将输出重定向到 file. command < file 将输入重定向到 file. command >> file 将输出以追加的方式重定向到 file. n > file 将文件描述符为

Shell 输入/输出重定向

大多数 UNIX 系统命令从你的终端接受输入并将所产生的输出发送回??到您的终端.命令通常从标准输入的地方读取输入,默认是终端.标准输出,默认情况下是终端. 重定向命令列表如下: 命令 说明 command > file 将输出重定向到 file. command < file 将输入重定向到 file. command >> file 将输出以追加的方式重定向到 file. n > file 将文件描述符为 n 的文件重定向到 file. n >> file 将

Shell 错误输出重定向

转自:https://www.cnblogs.com/vijayfly/p/6234575.html shell将标准错误输出重定向到 其他地方 经常可以在一些脚本,尤其是在crontab调用时发现如下形式的命令调用: /tmp/test.sh > /tmp/test.log 2>&1 前半部分/tmp/test.sh > /tmp/test.log很容易理解,那么后面的2>&1是怎么回事呢? 要解释这个问题,还是得提到文件重定向.我们知道>和<是文件重