shell死循環腳本
這個在句法上有問題,在「[]」要與判斷條件之間要有空格。
另外,就是你這個循環語句是一個死循環,最好是加一個判斷語句,好跳出循環。
❷ linux kill不能殺死shell腳本死循環
使用ps aux|grep 」腳本名「這種方式查找時,查看grep 」腳本「以外行的PID。
ps -ef 能比較直觀顯示進程PID、PPID(當前PID的父進程),程序名(最後一列)。
注意:你殺的應該是運行腳本時命令對應的PID,不是腳本里啟動的額外程序的PID,否則可能產生僵死進程。
❸ 寫個shell腳本的死循環造成cpu佔用率過高怎麼寫
使用死循環消耗CPU資源。
本腳本,如果是有多顆CPU,可以選擇消耗多少顆CPU的資源;使用方法很簡單,參數8表示消耗8顆CPU的資源,運行後,會有一堆 kill 命令,運行這些命令即可kill掉死循環進程。
#! /bin/bash
# filename killcpu.sh
endless_loop()
{
echo -ne "i=0;
while true
do
i=i+100;
i=100
done" | /bin/bash &
}
if [ $# != 1 ] ; then
echo "USAGE: $0 <CPUs>"
exit 1;
fi
for i in `seq $1`
do
endless_loop
pid_array[$i]=$! ;
done
for i in "${pid_array[@]}"; do
echo 'kill ' $i ';';
done
運行命令:./killcpu.sh 8
輸出:kill 20926 ;
kill 20928 ;
kill 20930 ;
kill 20932 ;
kill 20934 ;
kill 20936 ;
kill 20938 ;
kill 20940 ;
用top看資源消耗。
❹ linux shell腳本讀取用戶輸入的參數
$# 是傳給腳本的參數個數
$0 是腳本本身的名字
$1是傳遞給該shell腳本的第一個參數
$2是傳遞給該shell腳本的第二個參數
$@ 是傳給腳本的所有參數的列表
例如:
#!/bin/sh
echo "arg_num: $#"
echo "shell_name: $0"
echo "first_arg : $1"
echo "second_arg : $2"
echo "args : $@"
