這是一個簡單的函數,我們的腳本用它來查找用戶是否以root身份登錄。如何查找用戶在Linux下使用bash腳本以root身份登錄?
do_check_user(){
id | grep root 1>/dev/null 2>&1
if test "$?" != "0"
then
echo ""
echo " Invalid login, Please logon as root and try again!"
exit 0
fi
}
我不完全理解這個函數是如何工作的。我嘗試了一些在線搜索以查找它的實現方式。但對我而言仍然不清楚。
特別這些行:
id | grep root 1>/dev/null 2>&1
if test "$?" != "0"
我想這樣做一步一步。但我得到的錯誤
id | grep root 1
grep: 1: No such file or directory
,如果你能解釋我這句法和它在做什麼,這將是非常有益的
感謝
的第二個參數的grep應該是一個文件。名爲「1」的文件在當前目錄中不存在。 – fork0 2015-02-06 20:04:14
帶grep的行包含輸出重定向操作符('1>/dev/null'和'2>&1'),假設stderr(標準錯誤輸出通道,'2>')和標準輸出通道(標準輸出通道' 1>',通常寫成'>')到/ dev/null(又名,無處)。 – fork0 2015-02-06 20:07:05
順便說一下,這是一個很糟糕的測試方法。假設你有一個名爲'grooten'的用戶或者一個名爲'arrowroot_biscuits'的組? – rici 2015-02-06 21:03:03