Linux Shell系列教程之(七)Shell输出

摘要:
本文是LinuxShell系列教程的第七部分。有关更多的shell教程,请参阅:与其他语言一样,LinuxShell系列教程也在shell中有输出操作,这在实际应用中也非常重要。今天,我将向您介绍shell输出操作。Shelecho命令echo命令是shell的内部命令,用于在屏幕上打印指定的字符串。Itisatest输出重定向外壳可以使用直角括号(“˃”)和两个直角括号来指示输出重定向。对于今天的简短介绍,稍后将编写一个特殊的文件来详细描述shell的输入和输出重定向操作。

本文是Linux Shell系列教程的第(七)篇,更多shell教程请看:Linux Shell系列教程

与其他语言一样,Shell中也有输出操作,而且在实际应用中也是非常重要的,今天就为大家介绍下Shell输出操作。

Shell输出

Shell echo命令

echo命令是Shell的一个内部指令,用于在屏幕上打印出指定的字符串。

命令格式:

echo arg

转义字符

像其他高级语言一样,Shell也使用反斜杠“”作为转义字符。

例子:

echo ""It is a test""

输出:”It is a test”

输出变量

使用echo命令可以直接输出变量,示例如下:

name="linuxdaxue"
echo "$name It is a test"

输出:linuxdaxue It is a test

如果变量与其它字符相连的话,需要使用大括号({ }),示例如下:

mouth=8
echo "${mouth}-1-2009"

输出:8-1-2009

输出换行

echo命令与其他语言一样,使用反斜杠+n(“ ”)来表示换行,示例如下:

echo "OK!
"
echo "It is a test"

输出:

OK!
It is a test

输出重定向

Shell可以使用右尖括号(“>”)和两个右尖括号(“>>”)来表示输出的重定向,今天简单介绍下,后期会专门写一篇文件来详细介绍Shell的输入输出重定向操作。

示例:

echo "It is a test" > myfile
#将字符串重定向入myfile这个文件中,myfile中原有内容会被清除
echo "It is a test" >> myfile
#将字符串重定向入myfile这个文件中,myfile中原有内容不会被清除,新内容会追加到文件结尾处

保持原样输出

echo命令使用单引号“’”可以保持原样输出,不会对内容进行处理。示例如下:

echo '$name"'

输出:

$name”

输出命令的执行结果

echo后加用   `   号括起来的命令可以输出命令执行结果。`  这个符号是英文半角状态下键盘tab键上方和波浪线在一起的那个按键,将命令包含在 ` 符号中可以执行该命令,可以使用这一点来进行很多复杂的操作。

示例:

echo `date`

会输出当前时间

Shell printf命令

printf 命令用于格式化输出, 是echo命令的增强版。它与C语言的printf非常相似,但是语法上有些不同。

由于printf命令是由 POSIX 标准所定义,所以移植性要比 echo 好。

printf命令语法

printf  format-string  [arguments...]

format-string 为格式控制字符串,arguments 为参数列表。需注意的一点是,printf不会自动换行,也就是说使用printf命令必须显式的使用’ ’

对printf命令今天就不展开介绍了,大家可以看C语言中的printf命令,今天主要讲下Shell printf命令与C语言printf命令的区别。

  • printf 命令不用加括号
  • format-string 可以没有引号,但最好加上,单引号双引号均可。
  • 参数多于格式控制符(%)时,format-string 可以重用,可以将所有参数都转换。
  • arguments 使用空格分隔,不用逗号。

使用举例:

# format-string为双引号
$ printf "%d %s
" 1 "abc"
1 abc
# 单引号与双引号效果一样 
$ printf '%d %s
' 1 "abc" 
1 abc
# 没有引号也可以输出
$ printf %s abcdef
abcdef
# 格式只指定了一个参数,但多出的参数仍然会按照该格式输出,format-string 被重用
$ printf %s abc def
abcdef
$ printf "%s
" abc def
abc
def
$ printf "%s %s %s
" a b c d e f g h i j
a b c
d e f
g h i
j
# 如果没有 arguments,那么 %s 用NULL代替,%d 用 0 代替
$ printf "%s and %d 
" 
and 0
# 如果以 %d 的格式来显示字符串,那么会有警告,提示无效的数字,此时默认置为 0
$ printf "The first program always prints'%s,%d
'" Hello Shell
-bash: printf: Shell: invalid number
The first program always prints 'Hello,0'
$

好了,有关Shell输出 的相关知识就先介绍到这里,大家赶快试验下吧。

更多shell教程请看:Linux Shell系列教程


本文固定链接:linux大学网_Linux学习_Shell_嵌入式Linux--Linux Shell系列教程之(七)Shell输出

免责声明:文章转载自《Linux Shell系列教程之(七)Shell输出》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇洛谷 P2922 [USACO08DEC]秘密消息Secret Messagepython科学计算_scipy_常数与优化下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

shell中$*,$@,$# 的区别

$@ 和  $* 只在被双引号包起来的时候才会有差异 双引号括起来的情况: $*将所有的参数认为是一个字段 $@以 默认为空格 来划分字段,如果空格在“”里面,不划分。没有括起来的情况是$@和$*一样的,见到 空格 就划分字段。 $#是 程序的 参数个数(不包括$0) $? 获取上一次命令执行的返回值,一般 执行 成功 返回0。 $0 $1 $2 以此...

shell遍历文件目录,监听文件变化,拼接字符串

最近利用业余时间学习了shell 并做了个例子 实现的功能是 : 监听demo文件夹下的文件,只要新增了  .js的文件就把对应的文件名重组,拼接, 最后写入到demo.js里面. 文件结构如下 : demo.sh代码如下 while : ; do if [ -f oldfiles.log ] then #按照时间排序 并取第一行 就是最...

使用 ssmtp 於 shell 透過 Gmail 寄信

有很多程式於 bash shell 執行, 執行完要自動寄信出去, 但是最近都被 Google 退信, 最好的方法是透過 Gmail 直接寄信. 本來是要另外寫隻 script 來做這種事, 剛剛發現 $4 的介紹文, 真是超方便的, 一樣使用原本 shell 的 mail, script 都不需要改, 只要設定設一設即可~  原文:http://blog...

Apache下通过shell脚本提交网站404死链

网站运营人员对于死链这个概念一定不陌生,网站的一些数据删除或页面改版等都容易制造死链,影响用户体验不说,过多的死链还会影响到网站的整体权重或排名。 百度站长平台提供的死链提交工具,可将网站存在的死链(协议死链、404页面)进行提交,可快速删除死链,帮助网站SEO优化。在提交死链的文件中逐个手动填写死链的话太麻烦,工作中我们提倡复杂自动化,所以本文我们一起...

centos 下用shell删除多个目录下删除指定目录下创建日期大于30天的.log .txt文件

#删除指定目录下创建日期大于30天的.log .txt文件(如果目录下文件总数少于10个,就不删除),删除的文件记录写入到日志 #!/bin/bash #待删除的文件路径数组,多个目录换行 locations=( /root/logs/web1/ /root/logs/web2/ /root/logs/web3/ ) #输出的文件...

Spark2.1集群安装(standalone模式)

机器部署   准备三台Linux服务器,安装好JDK1.7 下载Spark安装包   上传spark-2.1.0-bin-hadoop2.6.tgz安装包到Linux(intsmaze-131)上   解压安装包到指定位置tar -zxvf spark-2.1.0-bin-hadoop2.6.tgz -C /home/hadoop/app/spark2.0...