练习
写一个脚本,可接受一个文件路径作为参数,
如果参数个数小于1,则提示用户"至少给出一个参数",并立即退出
如果参数个数不小于1,则显示第一个参数所指向的文件中的空白行数
1
2
3
4
5
6
7
<code># cat -n not.sh </code>
<code> </code><code>1 </code><code>#!/bin/bash</code>
<code> </code><code>2 </code><code>test</code> <code>$</code><code># -lt 1 && echo "At least not now" && exit 1</code>
<code> </code><code>3 lines=$(</code><code>grep</code> <code>-c </code><code>'^[[:space:]]$'</code> <code>$1)</code>
<code> </code><code>4 </code><code>echo</code> <code>"The lines of blank: $lines "</code>
<code> </code><code>5 </code><code>exit</code> <code>2</code>
<code># chmod +x not.sh</code>
<code># ./not.sh </code>
<code>At least not now</code>
<code># echo $?</code>
<code>1</code>
<code># ./not.sh /etc/rc.d/rc.sysinit </code>
<code>The lines of blank: 3 </code>
<code>2</code>
如果hostname存在,或等于Localhost.domain,重命名为www.magedu.com
<code>[ -z </code><code>"$(hostname)"</code> <code>] || [ </code><code>"$(hostname)"</code> <code>== </code><code>"localhost.domain"</code> <code>] && </code><code>hostname</code> <code>www.magedu.com</code>
#字符测试中,只有PATTERN才不能用引号,且必须在` ` 中,其他必须用"",用在任意括号中
<code>[ -z </code><code>"$(hostname)"</code> <code>-o </code><code>"$(hostname)"</code> <code>== </code><code>"localhost.domain"</code> <code>] && </code><code>hostname</code> <code>www.magedu.com</code>
/bin/cat 存在且可执行,运行cat fstab
<code># [ -e /bin/cat ] && [ -x /bin/cat ] && cat /etc/fstab</code>
#文件和数值测试中不能用引号
<code># [ -e /bin/cat -a -x /bin/cat ] && cat /etc/fstab</code>
本文转自 lccnx 51CTO博客,原文链接:http://blog.51cto.com/sonlich/1953090,如需转载请自行联系原作者