日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux命令:bash脚本选项使用cat EOF使用 getopts选项描述

發布時間:2025/3/21 linux 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux命令:bash脚本选项使用cat EOF使用 getopts选项描述 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


getopts:用于描述相關信息。

? 選項: OPTARG ?、 ?OPTIND


bash腳本綜合實驗:

1、如何利用腳本,在創建腳本時,自動把相關選項添加到新的腳本中,且自動在保存

腳本后檢測是否有語法錯誤,選擇是否繼續編輯還是退出等操作且描述信息可以自己定義。


?vim mkscript.sh

#!/bin/bash

# Name: mkscript ? 腳本名稱

# Description: Create script ? 腳本描述

# Author: A dong ? ?作者

# Version:0.0.1 ? ?版本號

# Datatime: 04/06/17 14:50:00

# Usage:mkscript FILENAME

while getopts ":d:" OPT; do

? case $OPT in

? ?d)

? ? DESC=$OPTARG ;;

? ?\?)

? ? echo "Usage: mkscript [ -d DESCRIPTION ] FILENAME" ;;

? esac

done


shift $[OPTIND-1]


if ! grep "[^[:space:]]" $1 &> /dev/null ; then

?cat > $1 << EOF

#!/bin/bash

# Name: `basename $1` ?

# Description: $DESC ??

# Author: A dong ??

# Version:0.0.1 ? ?

# Datatime: `date "+%F %T"`

# Usage:`basename $1`


EOF

fi


vim + $1


until bash -n $1 &> /dev/null ;do

? ?read -p "Syntax error,q|Q for quiting,others for editing: " CHOESE

? case $CHOESE in?

? ?q|Q)

? ? ?echo "Quiting..."

? ? ?exit 8

? ? ?;;

? ? *)

? ? ?vim + $1

? ? ?;;

?esac

done


chmod +x $1


腳本執行結果如下:自動生成相關的描述信息

[root@john script]# bash mkscript.sh -d "opt test" optest.sh

#!/bin/bash

# Name: optest.sh ?

# Description: opt test?

# Author: A dong ?

# Version:0.0.1 ? ?

# Datatime: 2017-04-07 09:42:59

# Usage:optest.sh

?


?

2.寫一個腳本getinterface.sh,腳本可以接受選項(i,I,a),完成以下任務:

?(1)使用以下形式:getinterface.sh [-i interface|-I IP|-a]

?(2)當用戶使用-i選項時,顯示其指定網卡的IP地址;?

?(3)當用戶使用-I選項時,顯示其后面的IP地址所屬的網絡接口;

?(4)當用戶單獨使用-a選項時,顯示所有網絡接口及其IP地址(lo除外);


vim showip.sh


#!/bin/bash

# Name: getopts.sh ?

# Description: getopts OPTIND ??

# Author: A dong ??

# Version:0.0.1 ? ?

# Datatime: 2017-04-07 15:00:38

# Usage:getopts.sh

?SHOWIP () {

? ?if ! ifconfig |grep -o "^[^[:space:]]\{1,\}"|grep $1 &>/dev/null ;then

? ? ?return 13

? ?fi

? ? ?echo -n "$1: "

? ? ifconfig $1 |grep -o "inet addr:[0-9\.]\{1,\}"|cut -d: -f2

??

? }

??

?SHOWETHER () {

? ?if ! ifconfig |grep -o "[0-9\.]\{1,\}"|cut -d: -f2 |grep $1 &> /dev/null ;then

? ? ? ?return 14

? ?fi?

? ? ?echo -n "$1: "

? ?ifconfig |grep -B 1 "$1"|grep -o "^[^[:space:]]\{1,\}"

? }

??

? ?USAGE () {

? ? ?echo "getopts.sh <-i interface|-I IP|-a ALL>"

? }

??

?while getopts ":i:I:a:" SWITCH; do

? ?case $SWITCH in

? ? ?i)

? ? ? SHOWIP $OPTARG

? ? ? [ $? -eq 13 ] && echo "Wrong ethercard."

? ? ? ;;

? ? ?I)

? ? ? SHOWETHER $OPTARG

? ? ?[ $? -eq 14 ] && echo "Wrong IP."

? ? ? ;;

? ? ?a)

? ? ? ifconfig | grep -A 1 "^[^[:space:]]\{1,\}"|grep -A 1 "eth[[:alnum:]]"

? ? ? ;;

? ? ?*)

? ? ? ?USAGE ;;

? ? esac

? done

?









轉載于:https://blog.51cto.com/woyaoxuelinux/1914034

總結

以上是生活随笔為你收集整理的linux命令:bash脚本选项使用cat EOF使用 getopts选项描述的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。