Linux Shell指令碼例子

來源:互聯網
上載者:User

標籤:指令碼


    Shell指令碼是我們營運人員管理的最基礎知識,下面就是我在學習過程中的一些小例子(比起大牛來說)。寫這篇部落格的目的,是為了記錄自己學習指令碼的曆程,也是為了能和讀者一起探討學習。

# Example1: 自動建立指令碼的模板 指令碼名:creat_scripts.sh # 功能描述:creat_scripts.sh SCRIPTS_NAME 如果建立的指令碼名檔案不存在,則建立成指令檔;# 如果對應的檔案存在,且為指令檔,則開啟檔案到最後一行;# 如果對應的檔案存在,但不是指令檔,則提示退出。#!/bin/bash# Description: create a script model# Version: 0.0.1# Author: Alex# Date: 2014-07-09# 判斷參數問題if [ $# -lt 1 ];then        echo "Usage: `basename $0` SCRPIPT_NAME."        exit 2fiif [ ! -e "$1" ];then/bin/touch "$1"cat > "$1" <<EOF#!/bin/bash# description:# version:# date:# author: Alex# license: GPLEOFvim + "$1"# 這裡判斷指令碼是否正常退出的辦法是,判斷是否存在 .SCRIPTS_NAME.swp隱藏檔案if [ ! -e "`/usr/bin/dirname $1`.$1.swp" ];then        [ ! -x $1 ] && /bin/chmod +x "$1"        bash -n $1 &>/dev/null        result=$?         [ $result -ne 0 ] && echo "$(bash -n $1)" fielse[[  `/usr/bin/file "$1"` =~  Bourne-Again\ shell\ script\ text\ executable$ ]] && vim + "$1" || echo "This is not scripts." && exit 2if [ ! -e "`/usr/bin/dirname $1`.$1.swp" ];then                [ ! -x $1 ] && /bin/chmod +x "$1"                bash -n $1 &>/dev/null                result=$?                 [ $result -ne 0 ] && echo "$(bash -n $1)"         fifi
# Example2:判讀一個IP v4地址是否為A,B,C類地址,如果是則列印出預設掩碼# 此指令碼是通過Example1的指令碼建立出來的#!/bin/bash# description:# version:0.0.0# date:2014-07-16# author: Alex# license: GPL# 下面是IP地址十進位表示是,四位的Regexfistip="[1-9]|[1-9][0-9]|11[0-9]|12[1-68-9]|1[3-9][0-9]|2[0-1][0-9]|22[0-3]"secondip="[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]"thirdip="[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]"fourip="[1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4]"read -p "Please input ip addr:" ip_addrwhile true ;do         # 等價於  while : ;doif echo "$ip_addr" | grep -E "^\<($fistip)\>\.\<($secondip)\>\.\<($thirdip)\>\.\<($fourip)\>$" &>/dev/null;then# 下面的這一句和上面應該有相同功能,但實際上不是,筆者正在研究#if [[ "$ip_addr" =~ ^\<\($fistip\)\>\.\<\($secondip\)\>\.\<\($thirdip\)\>\.\<\($fourip\)\>$ ]];thenifconfig eth0 $ip_addr &>/dev/nullhead_ip=`echo "$ip_addr" | cut -d. -f1`if [ $head_ip -ge 1 -a $head_ip -le 126 ];thenecho "$ip_addr mask is 255.0.0.0"elif [ $head_ip -ge 128 -a $head_ip -le 191 ];thenecho "$ip_addr mask is 255.255.0.0"elif [ $head_ip -ge 192 -a $head_ip -le 223 ];then                        echo "$ip_addr mask is 255.255.255.0"fiexit 3elseread -p "Please again input ip addr:" ip_addrfidone

    以後會不定期更新.....

本文出自 “逆水寒” 部落格,轉載請與作者聯絡!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.