bash腳本編程

1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell;分別統計這兩類用戶的個數;通過字符串比較來實現;
#!/bin/bash
declare -i loginSum=0;
declare -i nologinSum=0;
for x in `cat /etc/passwd|cut -d: -f 7`
do
if [ “/sbin/nologin” == “$x” ];then
let nologinSum+=1;
else
loginSum+=1;
fi
done
echo “loginSum:$loginSum”
echo “nologinSum:$nologinSum”
[root@centos6 script]# sh nologin.sh
loginSum:7
nologinSum:30
2、寫一個腳本:
(1)獲取當前主機的主機名,保存于hostname變量中;
(2)判斷此變量的值是否為localhost,如果是,則將當前主機名修改為www.magedu.com;
(3)否則,則顯示當前主機名。
#!/bin/bash
hostname=”`hostname`”
if [ $hostname == “localhost” ];then
sed -i “s@HOSTNAME\=localhost@HOSTNAME\=www.mgedu.com@” /etc/sysconfig/network
`hostname www.mgedu.com`
else
echo “`hostname`”
fi
~
bash腳本編程
bash腳本編程
3、?寫一個腳本,完成如下功能。
(1)傳遞一個磁盤設備文件路徑給腳本,判斷此設備是否存在;
(2)如果存在,則顯示此設備上的所有分區信息
#!/bin/bash
if [ $# -eq 0 ];then
echo “please input argument like:/dev/sda1”
fi
if [ -e “$1” ];then
fdisk -l $1;
else
echo “this directory is not exist”
fi
4、寫一個腳本,完成如下功能。
腳本能夠接受一個參數
(1)如果參數1為quit,則顯示退出腳本,并執行正常退出;
(2)如果參數1為yes,則顯示繼續執行腳本;
(3)?否則,參數1為其它任意值,均執行非正常退出。
#!/bin/bash
while true
do
read -p “please input yes|quit or other string:” str
case “$str” in
quit)
echo “exit the script”;
exit 0;
;;
yes)
echo “Continue with the script”;
continue;
;;
*)
exit 1;
esac
done
~
5.????寫一個腳本,完成如下功能。
傳遞一個參數給腳本,此參數為gzip、bzip2或者xz三者之一。
(1)?如果參數1的值為gzip,則使用tar和gzip歸檔壓縮/etc目錄至/backups目錄中,并命名為/backups/etc-20160613.tar.gz;
(2)?如果參數1的值為bzip2,則使用tar和bzip2歸檔壓縮/etc目錄至/backups目錄中,并命名為/backups/etc-20160613.tar.bz2;
(3)如果參數1的值為xz,則使用tar和xz歸檔壓縮/etc目錄至/backups目錄中,并命名為/backups/etc-20160613.tar.xz;
(4)?其它任意值,則顯示錯誤壓縮工具,并執行非正常退出。
#!/bin/bash
read -p “please input gzip bzip2 xz: ” str
case “$str” in
gzip)
tar -zcvf /backup/etc-20171031.tar.gz /etc/ ;
;;
bzip2)
tar -jcvf /backup/etc-20171031.tar.bz2 /etc/ ;
;;
xz)
tar -Jcvf /backup/etc-20171031.tar.xz /etc/;
;;
*)
echo “error compress”;
exit 1;
esac
6.????寫一個腳本,接受一個路徑參數:
(1)?如果為普通文件,則說明其可被正常訪問;
(2)?如果是目錄文件,則說明可對其使用cd命令;
(3)?如果為符號鏈接文件,則說明是個訪問路徑;
(4)?其它為無法判斷。
#!/bin/bash
if [ -f $1 ];then
echo ” This is a common file “
elif [ -d $1 ];then
echo “This is a path”
elif [ -L $1 ];then
echo “This is a Link”
else
echo “This is not a file”;
fi
7.????寫一個腳本,取得當前主機的主機名,判斷:
(1)?如果主機名為空或為localhost,或為”(none)”,則將其命名為mail.magedu.com;
(2)?否則,顯示現有的主機名即可。
#!/bin/bash
name=”`hostname`”
if [ -z “$name” -o “$name” = “localhost” -o “$name” = “(none)” ];then
echo $hostname
sed -i “s@HOSTNAME\=localhost@HOSTNAME\=www.mgedu.com@” /etc/sysconfig/network
`hostname www.mgedu.com`
echo “2”
else
echo “`hostname`”
fi

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/88177

(1)
469008940469008940
上一篇 2017-10-31 17:32
下一篇 2017-11-01 13:22

相關推薦

  • rpm包管理

    前言    RPM(簡稱RPM,全稱為The RPM Package Manager)是在Linux下廣泛使用的軟件包管理器。RPM此名詞可能是指.rpm的文件格式的軟件包,也可能是指其本身的軟件包管理器(RPM Package Manager)。最早由Red Hat研制,現在也由開源社區開發。RPM通常隨附于Linux發行版,…

    Linux干貨 2015-05-13
  • 用戶和組的管理

    通過命令、passwd和shadow的格式,講述了用戶和組的管理

    Linux干貨 2017-12-17
  • linux系統上命令使用格式及常見命令

    [root@localhost ~]# date -d ‘2017-07-06 00:00:00 ‘  用上面這條指令講解命令使用格式 date command  -d 是參數,參數有可選參數,必選參數,在參數前必選加上- ,還是以這條指令為列,-d可以寫成–date,如果寫成date,date前面必選…

    Linux干貨 2017-08-19
  • 常用命令總結

    ifconfig查看IP地址 date查看日期和時間 cd跳轉到任何目錄 useradd新建一個普通用戶 passwd給用戶設置密碼 poweroff   halt    關機 reboot  重啟 cal  查看日歷 cal -y 查看一年日歷 env  export&nbsp…

    Linux干貨 2017-04-04
  • Ansible淺談

    ansible特性:         模塊化,調用特定的模塊,完成特定的任務;         基于Python語言實現,由Paramiko、PyYAML和Jinja2三個關鍵模塊;         部署簡單,agentless; &nbs…

    Linux干貨 2016-12-15
  • 題外:自制小linux

    自制小linux 系統 制作環境的概述 首先你的有VMware的虛擬機軟件,其次安裝了centos6/centos7的linux系統 而且你需要寫一個復制相關命令以及依賴庫文件的的腳本(主要是為了省時間,腳本寫法會在后面備注)準備好以上環境,便可以制作一個小linux系統了,具體步驟如下 1)  在虛擬機設置中,在原有基礎上在掛載一個20G大小的硬…

    2017-04-04

評論列表(1條)

  • 馬哥教育
    馬哥教育 2017-11-15 15:04

    稍微注意一下排版。

欧美性久久久久