#! /bin/bash
for ((i=1;i<=5;i++ ))
doecho "i=$i"
touch $i.txt
sleep 1
done
echo "end!"
指令碼為bash!! for迴圈 學習語言的都熟悉 (())這是要求形式 條件自己寫吧 我這寫的5次
do為開始 $i即i變數的值 sleep睡眠時間
done結束 列印 「end」
下面介紹另外一篇定時記錄記憶體指令碼,record.sh
#!/bin/sh
times_left=120
file_name="record_`date+%m%d%h%m`.txt"
while [ $times_left -gt 0 ]
doecho"****************************************" >> $file_name
date >> $file_name
echo "****************************************" >>$file_name
./mem_stat.sh >> $file_name
echo "" >> $file_name
sleep 300
let times_left=times_left-1
done
記憶體資訊memstat.sh如下:
#!/bin/sh
# define function to get memory informationfrom processes.
get_rss()
echo $(($(grep "rss:" /proc/$1/smaps | sed "s/rss:*\(.*\) kb/+\1/" | tr '\n
get_pss()
echo $(($(grep "pss:" /proc/$1/smaps | sed "s/pss:*\(.*\) kb/+\1/" | tr '\n
get_pssf()
echo $(($(grep -a 3 / /proc/$1/smaps | grep "pss:" | sed"s/pss: *\(.*\) kb/
+\1/" | tr '\n' ' ')))
# define function to get memory informationfrom process tasks.
get_task_rss()
echo $(($(grep "rss:" /proc/$1/task/$2/smaps | sed"s/rss: *\(.*\) kb/+\1/"
| tr '\n' ' ')))
get_task_pss()
echo $(($(grep "pss:" /proc/$1/task/$2/smaps | sed"s/pss: *\(.*\) kb/+\1/"
| tr '\n' ' ')))
get_task_pssf()
echo $(($(grep -a 3 / /proc/$1/task/$2/smaps | grep "pss:" |sed "s/pss: *\(
.*\) kb/+\1/" | tr '\n' ' ')))
# find all the user space process ids
user_space_pids=$(ls -l /proc/[0-9]*/exe2>/dev/null | grep "-" | sed 's:.*proc/
\([0-9]*\).*:\1:')
# clear the cache files.
echo 3 > /proc/sys/vm/drop_caches
opera_rss=0
opera_pss=0
opera_pssf=0
opera_pssm=0
echo "pid ppid rss pss pssf pssm command"
for p in $user_space_pids; do
if [ -e /proc/$p ]; then
rss=$(get_rss $p)
totrss=$(($totrss + $rss))
pss=$(get_pss $p)
totpss=$(($totpss + $pss))
pssf=$(get_pssf $p)
totpssf=$(($totpssf + $pssf))
pssm=$(($pss-$pssf))
totpssm=$(($totpssm + $pssm))
cmd=`cat /proc/$p/comm`
if [[ "$cmd"x ="browserstub"x || "$cmd"x = "opera_omi"x ]]; the
nopera_rss=$(($opera_rss+ $rss))
opera_pss=$(($opera_pss+ $pss))
opera_pssf=$(($opera_pssf + $pssf))
opera_pssm=$(($opera_pssm+ $pssm))
fiprintf "%6d %6d %6d %6d%6d %6d %s\n" $(cut -d ' ' -f '1,4' /pro
c/$p/stat) $rss $pss $pssf $pssm $cmd
fidone
echo "total:"
printf "total:\t \t %6d %6d %6d %6d\n" $totrss $totpss $totpssf $totpssm
echo "opera:"
printf "opera:\t \t %6d %6d %6d %6d\n" $opera_rss $opera_pss $opera_pssf $opera
_pssm
# for b***rog tasks
#b***rog_pid=$(ls -l /proc/[0-9]*/exe2>/dev/null | grep "b***rog" | sed 's:.*pr
oc/\([0-9]*\).*:\1:')
#b***rog_task=/proc/$/task
#task_pids=$(ls $)
#echo "b***rog pid=$b***rog_pid"
# for totally meminfo, such as cachedmemory size
#head -n 7 /proc/meminfo
cat /proc/meminfo
Linux shell for迴圈結構
1 for 變數 in 取值列表 do statement statement done 2 for 變數 in 取值列表 dostatement statement done 上面兩個用法的效果是一樣的。取值列表 數字10 20 30 使用seq命令生成數字的序列 seq 10 seq 3 10 ...
for迴圈 while迴圈
迴圈結構 當重複執行相同的 或者是相似的 時。迴圈三要素 1 迴圈變數的宣告 用於控制迴圈次數的迴圈因子 2 迴圈條件 用於判斷是否執行相同或相似內容 迴圈體 的條件 3 迴圈變數的改變方向 向著迴圈結束的方向改變。1 for迴圈 語法 for 變數的宣告和初始化 迴圈條件 變數的改變方向 執行邏輯...
python while迴圈 for迴圈
1變數的初始化 while 條件2 條件滿足時候 執行該 條件滿足時候 執行該 3變數的更新 1 while 迴圈輸出1 100所有的數 while 迴圈輸出20次我愛你 迴圈輸出1 100累加和 1 100之間所有數的和 1變數的初始化 i 0 sum 0 儲存和 判斷條件 while i 100...