1. 程式人生 > >shell指令碼——實現簡單的功能

shell指令碼——實現簡單的功能

一、Hello Word的輸出:二、shell判斷是否已經安裝某個安裝包:三、shell判斷檔案或者資料夾是否存在四、在拷貝操作中直接覆蓋 不顯示提示資訊五、shell語句給以SASL_NOCANON開頭的行某一行加註釋六、echo中的轉義換行符 列印彩色字型、彩色背景七、shell在PATH環境變數所包含的目錄列表中(各路徑之間以冒號法分開)查詢對應的可執行檔案。八、檔案傳輸符和重定向:九、自定義檔案描述符:十、為命令建立別名一、Hello Word的輸出: 示例: $vim test.sh 編輯 #!/bin/sh echo 'Hello Word!' $chmod 755 test.sh $./test.sh 二、shell判斷是否已經安裝某個安裝包:
If空格 [空格 `rpm -qa openssl|wc -l` -ne 0空格 ];then        echo -e "The packet_list:\n$OPENPACKNAME"else            echo "NO have!"fi
#!/bin/sh#description: LDAP TLS#判斷client 與 伺服器 是否都安裝了 openssl 軟體包read -p "Inpiut your rpm_packet'name:" iOPENPACKNAME=`rpm -qa $i`if [ `rpm -qa $i|wc -l` -ne 0 ];then        echo -e "The packet_list:$OPENPACKNAME"
else        echo "NO have!"fi
三、shell判斷檔案或者資料夾是否存在if [ ! -f $CLICA_PATH/private/CA.key ];then        echo "make make it"else        echo "This file is exit!!"fi四、在拷貝操作中直接覆蓋 不顯示提示資訊檔案存在不顯示提示資訊:cp -n /etc/openldap/ldap.conf /usr/local/etc/openldap/強制覆蓋,忽略別名,不顯示提示資訊: \cp -f /etc/openldap/ldap.conf /usr/local/etc/openldap/五、shell語句給以
SASL_NOCANON開頭的行某一行加註釋sed 's/^SASL_NOCANON/#&/' /usr/local/etc/openldap/ldap.conf六、echo中的轉義換行符 列印彩色字型、彩色背景 示例:echo "1\t2\t3" 1\t2\t3 示例:echo -e "1\t2\t3" 1 2 3 示例:打印出彩色的 echo -e "\e[1;31m This is red text \e[0m" 顏色碼:重置=0 黑色=30 紅色=31 綠色=32 黃色=33 藍色=34 洋紅=35 青色=36 白色=37 1是加粗字型;2是隱藏字型;3是斜體;4是有下劃線 示例:打印出彩色的背景 echo -e "\e[1;41m Red Background \e[0m" 顏色碼:重置=0 黑色=40 紅色=41 綠色=42 黃色=43 藍色=44 洋紅=45 青色=46 白色=47七、shell在PATH環境變數所包含的目錄列表中(各路徑之間以冒號法分開)查詢對應的可執行檔案。 示例:如果在PATH中加一條新路徑 export PATH="$PATH:/home/user/bin" 或者 $PATH:/home/user/bin $export PATH八、檔案傳輸符和重定向: 示例:$ echo "This is a sample text 1" > temp.txt 輸出:vi temp.txt 輸出一行 示例:$ echo "This is a sample text 2" >> temp.txt 輸出:vi temp.txt 輸出兩行 >和>>並不相同,儘管這兩個操作符都可以將文字重定向到檔案,但是前者會先清空檔案,再寫入內容!而後者會講內容追加到現有的檔案的尾部。 *當使用重定向操作符時,重定向的內容不會出現在終端,而是直接被匯入到檔案。重定向操作符預設使用標註輸出。九、自定義檔案描述符: *檔案描述符是用於訪問檔案的一個抽象指標。存取檔案離不開被成為“檔案描述符”的特殊數字。0、1、2分別是stdin stdout stderr的預留檔案描述符。 *我們可以使用exec命令建立自定義的檔案描述符。 *<操作符用於從檔案中讀取至stdin >操作符用於截斷模式的檔案寫入(資料在目標檔案內容被截斷後寫入) >>操作符用於追加模式的檔案寫入(資料加到現有的而檔案的內容中,而且檔案原有的內容不會丟失) 只讀模式 示例:為讀取檔案建立一個檔案描述符 $ echo this is a test line > input.txt $ exec 3<input.txt $ cat <&3 輸出:this is a test line 截斷模式: 示例:建立一個檔案描述符用於寫入(截斷模式) $ exec 4>output.txt $ echo newline >&4 $ cat output.txt 輸出:newline 追加模式 示例:建立一個檔案描述符用於寫入(追加模式) $ exec 5>input.txt $ echo newline >&5 $ cat input.txt十、為命令建立別名 示例:為安裝命令apt-get install建立別名: $ alias install='sudo apt-get install' 這樣以來,我們就可以用install pidgin代替sudo apt-get install pidgin了。 *alias命令的作用只是暫時的。一旦關閉當前終端,所有的設定過的別名就消失了。為了使別名設定一直保持作用,可以將它放入~/.bashrc檔案中。因為每當一個新的shell程序生成時,都會執行~/.bashr中的命令 刪除別名: $ unalias install='sudo apt-get install'