这是一个简单的函数,我们的脚本用它来查找用户是否以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