我不習慣在bash中編寫代碼,但我自學自己。我試圖創建一個腳本來查詢進程列表中的信息。我已經做了,但我希望把它進一步,使它如此:bash腳本中的條件變量?
- 腳本用一組命令運行如果A OS是存在的。
- 如果B OS存在,腳本將使用一組不同的命令運行。
這是我到目前爲止。它適用於我的Centos發行版,但不適用於我的Ubuntu。任何幫助是極大的讚賞。
#!/bin/bash
pid=$(ps -eo pmem,pid | sort -nr -k 1 | cut -d " " -f 2 | head -1)
howmany=$(lsof -l -n -p $pid | wc -l)
nameofprocess=$(ps -eo pmem,fname | sort -nr -k 1 | cut -d " " -f 2 | head -1)
percent=$(ps -eo pmem,pid,fname | sort -k 1 -nr | head -1 | cut -d " " -f 1)
lsof -l -n -p $pid > ~/`date "+%Y-%m-%d-%H%M"`.process.log 2>&1
echo " "
echo "$nameofprocess has $howmany files open, and is using $percent"%" of memory."
echo "-----------------------------------"
echo "A log has been created in your home directory"
echo "-----------------------------------"
echo " "
echo ""$USER", do you want to terminate? (y/n)"
read yn
case $yn in
[yY] | [yY][Ee][Ss])
kill -15 $pid
;;
[nN] | [n|N][O|o])
echo "Not killing. Powering down."
echo "......."
sleep 2
;;
*) echo "Does not compute"
;;
esac
的就是你在ubuntu下運行這個錯誤? – sge
而不是讓你的腳本以不同的方式處理不同的分佈,以便攜的方式寫它會更有用。如果您可以回答@ Lorunification的問題,我們可能會告訴您需要更改哪些內容。 –