天天看點

條件測試&&自定義退出狀态碼小練習

練習

寫一個腳本,可接受一個檔案路徑作為參數,

如果參數個數小于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 &amp;&amp; echo "At least not now" &amp;&amp; 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>] &amp;&amp; </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>] &amp;&amp; </code><code>hostname</code> <code>www.magedu.com</code>

/bin/cat 存在且可執行,運作cat fstab

<code># [ -e /bin/cat ] &amp;&amp; [ -x /bin/cat ] &amp;&amp; cat /etc/fstab</code>

#檔案和數值測試中不能用引号

<code># [ -e /bin/cat -a -x /bin/cat ] &amp;&amp; cat /etc/fstab</code>

本文轉自 lccnx 51CTO部落格,原文連結:http://blog.51cto.com/sonlich/1953090,如需轉載請自行聯系原作者