51学通信论坛2017新版
标题:
1.4 命令替换及典型应用
[打印本页]
作者:
admin
时间:
2017-12-17 22:24
标题:
1.4 命令替换及典型应用
shell脚本中最有用的特性之一就是可以从命令输出中提取信息,并将其赋给变量。把输出赋给变量之后,就可以随意在脚本中使用了。这个特性在处理脚本数据时尤为方便。
有两种方法可以将命令输出赋给变量:
- 反引号字符(`)
- $()格式
命令替换允许你将shell命令的输出赋给变量。
1 基本举例
1.1 将命令的输出赋值给一个变量
代码:
testing=$(date)
echo "The date and time are: " $testing
复制代码
输出:
The date and time are: Sun Dec 17 22:25:15 CST 2017
复制代码
可以看到,本例中,将date命令的输出赋予了testing这个变量,然后通过echo打印出来,呈现给用户。
1.2 将命令的输出赋值给一个变量
通过命令替换获得当前日期并用它来生成唯一文件名
代码:
today=$(date +%y%m%d)
ls /usr/bin -al > log.$today
复制代码
输出没有显示。但是我们用ls -l查看下当前目录,发现系统自动创建了一个新的文件log.171217。如下:
[root@python3 shellprogram]# ls -l
total 48
-rw-r--r-- 1 root root 38177 Dec 17 22:40 log.171217
-rwxr--r-- 1 root root 103 Dec 17 22:38 test
复制代码
我们的目的达到了。回顾一下:
1)+%y%m%d格式告诉date命令将日期显示为两位数的年月日的组合。
执行命令:$ date +%y%m%d
输出为171217。
2)ls /usr/bin -al >右侧的>是一个重定向,把ls的输出结果存放到log.$today文件中,而$today已经在第一行脚本中得到了取值为171217。
总结:
目录中出现的日志文件采用$today变量的值作为文件名的一部分。日志文件的内容是/usr/bin目录内容的列表输出。
如果脚本在明天运行,日志文件名会是log.140201,就这样为新的一天创建一个新文件。 (鼓掌!!!)
欢迎光临 51学通信论坛2017新版 (http://bbs.51xuetongxin.com/)
Powered by Discuz! X3