博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
shell编程
阅读量:4494 次
发布时间:2019-06-08

本文共 2781 字,大约阅读时间需要 9 分钟。

1,简单数组打印,使用for和while

#!/bin/sh#city=(`ls /etc/init.d`); //也利用ls获得数组city=("liuzhou" "wuhan" "beijng" "heifei" "liaoning" "shanghai" "xian");number=${#city[@]} //计算出数组个数          echo "use while: "i=0       while [ $i -lt $number ]do            echo -n "${city[$i]}  "    let i=i+1;done      echo ""   echo "There are $number"                    echo "use for: "for var in ${city[@]}; do    echo -n "$var  "done      echo ""   echo "There are $number"

 

2,读取网卡信息,并存储在文件(使用ifconfig和awk)

#!/bin/sh#follow an argument such as "./get_net.sh [argument]"#read the information:"ip" "netmask" "mac"#and store the network information in filePWD=`pwd`network=("eth0" "lo")if [ $# != 1 ]; then    echo "follow only one argument"    echo "example: ./get_net.sh [argument]"    exitfiif [ "$1"x = "${network[0]}"x ]; then  //判断两个字符串是否一致    IPADDR=`ifconfig ${network[0]} | grep "inet addr:" | awk -F"Bcast:" '{print$1}' \    | awk -F":" '{print$2}'`    MAC=`ifconfig ${network[0]} | grep "Ethernet" | awk -F"HWaddr " '{print$2}'`    NETMASK=`ifconfig ${network[0]} | grep "inet addr:" | awk -F"Mask:" '{print$2}'`    if [ -f $PWD/${network[0]} ]; then  //如果文件以及存在,先删除,再存储        rm -rf $PWD/${network[0]}    fi    echo ip=$IPADDR >> $PWD/${network[0]}    echo mac=$MAC >> $PWD/${network[0]}    echo netmask=$NETMASK >> $PWD/${network[0]}elif [ "$1"x = "${network[1]}"x ]; then    IPADDR=`ifconfig lo | grep "inet addr" | awk -F"Mask:" '{print$1}' | awk -F":" '{print$2}'`    NETMASK=`ifconfig lo | grep "inet addr" | awk -F"Mask:" '{print$2}'`    if [ -f $PWD/${network[1]} ]; then        rm -rf $PWD/${network[1]}    fi    echo ip=$IPADDR >> $PWD/${network[1]}    echo netmask=$NETMASK >> $PWD/${network[1]}else    echo "illegal argument, use "ifconfig -a" to get information"    echo "example: ./get_net.sh [argument]"    exitfi

 

3,一键解压脚本

#!/bin/bash#Uncompress all kinds of files#such as:.tar.bz2 .tar.gz .bz2  .gz .zip .tgz .tbz .rar .Z .7zif [ $# != 1 ]; then    echo "follow only a file"    echo "./autoex.sh [argument]"fiif [ -f $1 ] ; then   case $1 in    *.tar.bz2)  tar -xjf $1;;    *.tar.gz )  tar -xzf $1;;    *.tar)      tar -xf $1;;    *.bz2)      bunzip2 -d $1;;    *.rar)      rar x $1     ;;    *.gz)       gunzip -d $1;;    *.zip)      unzip $1;;    *.tgz)      tar -xzf $1;;    *.tbz2)     tar -xjf $1;;    *.7z)       7z x $1;;    *.Z)        uncompress $1  ;;    *)          echo "'$1' cannot be extracted via extract()" ;;   esacelse    echo "'$1' is not a valid file"fi

 

 

补充shell下内部参数:

      $0 ---- 当前程序的名称,而$1,$2 后续参数

  $# ---- 表示参数的个数
  $? ---- 上一个代码或者shell程序在shell中退出的情况,如果正常退出则返回0,反之为非0值。
  $* ---- 传递给程序的所有参数组成的字符串。
  $@ ---- 取到所有的参数值
  $$ ---- 本程序的(进程ID号)PID
  $! ---- 上一个命令的PID
  
学习链接:

shell编程基础:

linux下awk用法:

shell数组:

解压大全:

转载于:https://www.cnblogs.com/xiaoxing/p/3968490.html

你可能感兴趣的文章
[P1273]有线电视网
查看>>
poj 2940
查看>>
1017 Queueing at Bank (25)(25 point(s))
查看>>
个人随笔之《寻找真实的自己》
查看>>
判断是否是素数(质数)
查看>>
嵌入式第10次实验报告
查看>>
Android Fragment 详解
查看>>
alert确定后刷新页面
查看>>
LINQ基础(三)
查看>>
mysql练习
查看>>
STL的第二级配置器
查看>>
(诊断)No module named MySQLdb
查看>>
Emacs 安装配置使用教程
查看>>
VS2017常用快快捷键
查看>>
docker问题
查看>>
kubelet disk 压力
查看>>
velocity.js的使用
查看>>
UIImagePickerController的使用方法
查看>>
[2017 - 2018 ACL] 对话系统论文研究点整理
查看>>
渲染流程替换
查看>>