shell腳本參數練習

1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登陸shell(即用戶的shell不是/sbin/nologin),分別這兩類用戶的個數;通過字符串比較來實現;

!/bin/bash

#

login_user=0

nologin_user=0

for i in $(cat /etc/passwd | cut -d : -f 7);do

if [ $i == “/sbin/nologin” ];then

let nologin_user++

else

let login_user++

fi

done

echo “login_user=$login_user,nologin_user=$nologin_user.”

2、寫一個腳本

(1)獲取當前主機的主機名,保存于hostname變量中;

(2)判斷此變量的值是否為localhost,如果是,則將當前主機名修改為www.magedu.com;

(3)否則,則顯示當前主機名;

#!/bin/bash

#

hostname=$(echo $(hostname))

if [[ $hostname == “localhost” ]];then

hostname www.magedu.com

else

echo “$hostname”

fi

3、寫一個腳本,完成如下功能

(1)傳遞一個磁盤設備文件路徑給腳本,判斷此設備是否存在;

(2)如果存在,則顯示此設備上的所有分區信息;

#!/bin/bash

#

if [ $# -lt 1 ];then

echo “At least one device file.”

exit 1

fi

if [ -e $@ ];then

echo “$(fdisk -l $@)”

else

echo “Unknown device”

exit 2

fi

4、寫個腳本,完成如下功能

腳本能夠接受一個參數;

(1)如果參數1為quit,則顯示退出腳本;

(2)如果參數1為yes,則顯示繼續執行腳本;

(3)否則,參數1為其它任意值,均執行非正常退出;

#!/bin/bash

#

cat << EOF

1.quit

2.yes

EOF

read -p “Please enter(quit or yes):” name

if [[ $name == quit ]];then

echo “exit the script.”

elif [[ $name == yes ]];then

echo “Continue with the script.”

else

echo “Unknown scirpt.”

exit 2

fi

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-20160603.tar.bz2

(3)如果參數1為xz,則使用tar和xz歸檔壓縮/etc目錄至/backups目錄中,并命名為/etc-20160613.tar.xz;

(4)其它任意值,則顯示錯誤壓縮工具,并執行非正常退出;

#!/bin/bash

#Use tar and gzip, bzip2, xz archive compression/etc/directories, and name it/backups/etc

-20string606string3./ backups/etc – 20string606string3. The tar. Bz ip2./

backups/etc – 20string606string3. The tar. Xz

cat << EOF

gzip)Archive using tar and gzip

bzip2)Archive using tar and gzip

xz)Archive using tar and gzip

EOF

read -p “please enter[gzip|bzip2|xz]:” string

if [[ $string == gzip ]];then

tar -zcf /backups/etc-$(date +%Y%m%d).tar.gz /etc

elif [[ $string == bzip2 ]];then

tar -jcf /backups/etc-$(date +%Y%m%d).tar.bz2 /etc

elif [[ $string == xz ]];then

tar -Jcf /backups/etc-$(date +%Y%m%d).tar.xz /etc

else ?echo “Compression error.”

exit 1

fi

6、寫一個腳本,接受一個路徑參數;

(1)如果為普通文件,則說明其可被正常訪問;

(2)如果是目錄文件,則說明可對其使用cd命令;

(3)如果為符號鏈接文件,則說明是個訪問路徑;

(4)其它為無法判斷;

#!/bin/bash

#

if [ $# -lt 1 ];then

echo “At lease one arguments.”

exit 1

fi

if [ -f $1 ];then

echo “Normal access.”

elif [ -d $1 ];then

echo “Use ?cd command.”

elif [ -L $1 ];then

echo “Access path.”

else ?echo “Unknown file.”

fi

7、寫一個腳本,取得當前主機的主機名,判斷

(1)如果主機名為空或為localhost,或為(none),則將其命名為mail.magedu.com

#!/bin/bash

#

hostname=$(echo `hostname`)

if [ -z “$hostname” -o “$hostname” == “loclahost” -o “$hostname” == “none” ];then

hostname www.magedu.com

else

echo “$hostname”

fi

 

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

(0)
N27_shijinlongN27_shijinlong
上一篇 2017-09-17 19:57
下一篇 2017-09-17 21:51

相關推薦

  • Redis基于keepalived的高可用實踐

    接著上一章節來: Redis基于keepalived的高可用實現 方案拓撲圖 測試方案 1.       手動關閉AppM keepalived進程確認keepalived主從變化,AppS1是否變更為主 2.       開啟keepal…

    2015-03-05
  • mysql備份之mysqldump

    mysql備份之mysqldump 注意:備份文件和二進制日志文件不能與mysql放在同一磁盤下 節點1 1、節點1上修改mysql配置文件,開起二進制日志保存 這里我將二進制日志放在/data/mysql/目錄下,/data/是我創建的另外一個lvm磁盤,本來想直接放在/data/下,發現無法啟動mysql,所以建議還是放在/data/mysql中 [ro…

    Linux干貨 2016-07-19
  • 馬哥教育網絡第21期-第六周課程練習

    請詳細總結vim編輯器的使用并完成以下練習題 1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#; [root@6 ~]# cp /etc/rc.d/rc.sysinit /tmp [root@6 ~]# …

    Linux干貨 2016-08-15
  • 文件系統管理和掛載

    磁盤結構 設備類型:     塊設備:block,存取單位“塊”,例如,磁盤     字符設備:char,存取單位“字符”,鍵盤 設備文件:關聯至一個設備驅動程序,進而能夠跟之對應硬件設備進行通信 設備號碼:     主設備號:major …

    Linux干貨 2016-08-29
  • n28 第二周作業

    n28 第二周作業

    Linux干貨 2017-12-09
  • Linux源碼包安裝詳解

    安裝源碼包 安裝一個源碼包,是需要我們自己把源代碼編譯成二進制的可執行文件。如果你讀得懂這些源代碼,那么你就可以去修改這些源代碼自定義功能,然后再去編譯成你想要的。使用源碼包的好處除了可以自定義修改源代碼外還可以定制相關的功能,因為源碼包在編譯的時候是可以附加額外的選項的。 源碼包的編譯用到了linux系統里的編譯器,常見的源碼包一般都是用C語言開發的,這也…

    Linux干貨 2016-09-06
欧美性久久久久