7 Shell指令碼程式設計高階

2021-09-28 01:50:06 字數 2475 閱讀 4722

1 編寫指令碼實現傳入程序pid,檢視對應程序/proc下的cpu、記憶體指標。

#!/bin/bash

color_red_start="[1;31m"

color_red_end="[0m"

read -p "please input the pid to check cpu&mem infomation:" pid

checkpid=`ps aux | awk '' | grep -w "$pid"`

if [ ! $checkpid ];then

echo "the pid '$pid' does not exits, please make sure and input a correct pid. "

else

echo -e "\033$the mem info is:\033$\n`sed -nr "/^vm*/p" /proc/$pid/status`"

echo -e "\033$the cpu info is:\033$\n`sed -nr "/^cpu*/p" /proc/$pid/status`"

echo -e "\033$the mem pid_$pid uses is:\033$ `ps -p $pid -o %mem | sed -n '2p'`"

echo -e "\033$the cpu pid_$pid uses is:\033$ `ps -p $pid -o %cpu | sed -n '2p'`"

fi

執行結果: 

執行結果:

3 編寫指令碼/root/bin/execute.sh, 判斷引數檔案是否為sh字尾的普通檔案,如果是,新增所有人可執行許可權,否則提示使用者非指令碼檔案。

#!/bin/bash

[ $# -eq 0 ]||[ $# -gt 2 ]&&

[ ! -f $1 ] &&

[[ "$1" =~ \.sh$ ]] && || echo "$1 isn't a script."

執行結果:

4編寫指令碼/root/bin/nologin.sh和login.sh,實現禁止和允許普通使用者登入系統。

vim nologin.sh

[ ! -e /etc/nologin ] &&

vim login.sh

[ -e /etc/nologin ] && rm -f /etc/nologin && echo "users can login now."

5 編寫指令碼/root/bin/sumid.sh,計算/etc/passwd檔案中的第10個使用者和第20個使用者的id之和。

#!/bin/bash

id10=`cut -d: -f3 /etc/passwd|head -10|tail -1`

id20=`cut -d: -f3 /etc/passwd|head -20|tail -1`

let sumid=$id10+$id20

echo sumid is $sumid

unset id10 id20 sumid

7 shell程式設計

一.shell指令碼介紹 shell是什麼?一門程式語言,用來解釋執行這門程式語言語法的直譯器 計算機體系結構 命令 shell直譯器 系統呼叫的介面 核心 計算機硬體 什麼是程式語言 人 程式語言 計算機 什麼是程式設計 人 程式語言 計算機 先幹什麼 再幹什麼 然後幹什麼 什麼是程式 我們把計算...

Shell 學習7 Shell 特殊變數

前面已經講到,變數名只能包含數字 字母和下劃線,因為某些包含其他字元的變數有特殊含義,這樣的變數被稱為特殊變數。例如,表示當前shell程序的id,即pid,看下面的 echo 執行結果 29949特殊變數列表 0 當前指令碼的檔名 n 傳遞給指令碼或函式的引數。n 是乙個數字,表示第幾個引數。例如...

shell 學習筆記7 shell 函式

把相同程式段定義成函式,可以減少整個程式的 量,提公升開發效率 增加程式的可讀性,易讀性,提公升管理效率 可以失效程式功能模組化,使程式具備可移植性 其實linux系統裡面近2000個命令可以說都是shell的函式 function 名稱 復合命令塊 重定向 function 函式名 1 開發乙個建...