如何編寫一個簡單的shell腳本來檢查是否有人使用display :0
?這不起作用:sh shell code - 檢索命令結果
if [ 'who | grep " :0 "' != "" ]
then
echo "hi"
fi
如何編寫一個簡單的shell腳本來檢查是否有人使用display :0
?這不起作用:sh shell code - 檢索命令結果
if [ 'who | grep " :0 "' != "" ]
then
echo "hi"
fi
#!/bin/sh
R=$(who | grep " :0 ")
echo $R
if [ "$R" != "" ]; then
echo "hi"
fi
這也應該工作。什麼問題(或者你只是回答你自己的問題)? – 2010-05-26 14:42:15
我在回答我自己的問題=] – 2010-05-26 15:22:02
if who | grep " :0 "
then
echo "hi"
fi
注意,誰是不同版本的誰不同的輸出。對於GNU的coreutils 7.4版本,你需要誰的grep「(0」的代替grep的「0」
一些其他的答案的工作,但沒有需要捕捉的輸出grep的(使用$()或backtics)用於字符串比較,因爲grep的的退出狀態指示成功或失敗所以,你可以將其降低到這一點:
if who | grep -q ' :0 '; then
echo hi
fi
或者更簡單:
who | grep -q ' :0 ' && echo hi
注:
「如果」上的命令或命令的流水線操作。
左方括號實際上是一個命令,'test'的另一個名稱。
q選項會抑制grep的輸出(在大多數版本中)。
而不是調用who,grep和test,你可以調用who和grep。
作爲另一個回答指出,你可能需要grep除了':0'之外的東西取決於你的系統。
什麼問題?什麼是處理器拱?什麼是操作系統? – 2010-05-26 13:40:55
@Moron:這是一個sh(bash?)腳本,所以操作系統是unix。 – 2010-05-26 13:59:41
@BlueRaja:標題說的是ShellCode,我推測它是程序集操作碼字節,所以確切的操作系統和處理器體系結構很重要。我明白了,標題現在已經被編輯過了。 – 2010-05-26 14:20:59