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
下一篇 2017-11-01

相關推薦

  • 2.Linux文件管理類命令

    Linux文件管理類命令 cp命令:copy 源文件;目標文件; 單源復制:cp [OPTION]… [-T] SOURCE DEST 多源復制:cp [OPTION]… SOURCE… DIRECTORY | cp [OPTION]… -t DIRECTORY SOURCE… 單源復制:cp [OPTION]… [-T]&…

    Linux干貨 2017-07-09
  • 馬哥教育網絡20期—nginx

    Nginx 一. Nginx 特性 二. Nginx 基本架構 三. Nginx 基本功能 四. Nginx 安裝 五. Nginx 配置文件 六. Nginx http服務功能測試 七. Nginx LNMP 一. Nginx 特性 模塊化,目前只能將模塊編譯進Nginx,暫時不支持動態裝卸載模塊.(httpd優勢) 可靠性,一個主進程(master)控制…

    Linux干貨 2016-06-26
  • Linux程序包管理相關

    前言 首先說說一個軟件的誕生過程: 程序員用編程語言寫文本格式的源代碼,但是計算機只能讀懂二進制文件,那么就需要將源代碼轉換成二進制格式,這個過程稱為編譯。編譯用的工具稱為編譯器,編譯器有很多種,在Linux上常用gcc這個編譯器。利用編譯器,得到二進制格式的文件(二進制程序(Windows上.exe.msi,Linux.elf)、庫文件、配置文件、幫助文件…

    Linux干貨 2018-01-04
  • N25-第三周作業

      alias NAME='COMMAND'           定義命令的別名—對當前用戶有效  un為解除別名 Which   查看命令別名 Whereis    查看程序的文檔和源碼路徑(-b &nbs…

    Linux干貨 2016-12-18
  • 【N25第二周作業】Linux文件管理命令以及文件名通配glob

    Linux干貨 2016-12-12
  • ubuntu kylin虛擬機安裝KVM

    1.確定物理機CPU是否支持虛擬化    查看方法1:計算機->屬性->處理器(Inter(R) Core(TM) i5-2450M),然后去網上查看自己的電腦CPU是否支持虛擬化,    地址http://ark.intel.com/zh-cn/找到自己CPU的信息,虛擬化技術后是否顯示為yes,如果是n…

    Linux干貨 2016-10-15

評論列表(1條)

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

    稍微注意一下排版。

欧美性久久久久