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

相關推薦

  • 編譯內核

    了解內核;內核設計體系:單內核,微內核     linux:單內核設計,但充分借鑒了微內核體系的設計優點;為內核引入了模塊化機制; 內核的組成部分一般有三種;     kernel:內核核心,一般為bzimage (bzip2格式所壓縮的內核映像文件),這個文件通常位于/boot…

    Linux干貨 2016-09-21
  • dd命令詳解及實戰應用

    dd簡述 dd在linux中是 一個強大的命令,常用于拷貝大量數據,測試讀寫效能 ,清空硬盤數據(慎用),不僅如此,由于dd 允許以二進制方式讀寫,所以特別適合在原始設備上輸入、輸出。 dd與cp的區別 這里有必要說明一下,兩個命令都可用于拷貝,但是級別卻完全不一樣:cp是文件級別的讀取方式,而dd更底層,可以數據塊級別去讀取硬盤,由此可看出在效率…

    Linux干貨 2017-04-04
  • 標準I/O和管道

    程序包含指令和數據,經常需要讀入數據和輸出數據 打開的文件都有一個fd:file descriptor(文件描述符) 用nano打開一個文件,查看其PID  0,1,2就是所謂的文件描述符。 在Linux里輸入輸出和錯誤都由這三個描述符來表示 標準輸入(STDIN) -0 默認接受來自鍵盤的輸入 標準輸出(STDOUT)-1 默認輸出到終端窗口 標…

    Linux干貨 2016-08-08
  • N22-第三周課堂練習

    — 1.列出當前系統上所有已經登錄的用戶的用戶名,注意:用一個用戶登錄多次,則只顯示一次即可。     who | awk '{print $1}' | uniq 2.取出最后登錄到當前系統的用戶相關信息。   last | head -n 1 3.取出當前系統上被用戶當作其默認shell的最多的…

    Linux干貨 2016-08-30
  • 第七周-磁盤管理、RAID及Shell腳本練習

    一、創建一個10G分區,并格式為ext4文件系統; (1)、 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl; (2)、掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳; [root@N1 ~]# mkfs.ext4 -b 2048 -m 2 -L MYDATA /…

    Linux干貨 2017-08-13
  • Bash編程之流程控制

    Bash作為一種過程式編程語言,擁有一套流程控制體系,可完成選擇執行,循環執行功能。下面分別介紹if/else,case,select,for,while/until等語法的使用。

    Linux干貨 2016-08-21
欧美性久久久久