作者:手机用户2602939201 | 来源:互联网 | 2023-08-14 13:20
我有一个我复制和编辑过的脚本.如果可能的话,我需要解释几行.这些是:read-ppleaseentertheusernameyouwishtocreate:usernameif
我有一个我复制和编辑过的脚本.如果可能的话,我需要解释几行.
这些是:
read -p "please enter the username you wish to create: " username
if id -u $username >/dev/null 2>&1; then
读取-p有什么作用? id -u做什么?什么> / dev / null 2& 1;做?
然后在脚本中,它有这一行说:
sudo useradd -g $group -s $bash -d $homedir -m $username -p $password
再次,请有人解释这一行中的所有减号吗? (-g,-s,-d,-m,-p)
解决方法:
首先,结构 – <选项>表示您要执行使用与
旁注:对于几个单词而不是单个字母的选项,通常它会使用两个减号 – 而不是一个,表示它是一个“长命名”选项.
因此,使用read -p示例,这意味着您希望使用p选项执行读取,该选项代表提示.
现在,有时一个选项需要一个参数.在您的示例中,useradd的选项具有参数.参数通常定义为 – <选项> [参数].因此,在useradd示例中,$group是选项g的参数.
现在为命令本身:
read
是一个内置的bash(不是POSIX shell命令),它从标准输入读取.
> -p选项使其作为提示读取,这意味着它在尝试读取输入之前不会添加尾随换行符.
if
检查测试命令的返回状态(在这种情况下为id -u $username> / dev / null 2>& 1)
>如果返回状态为0,则执行then部分
id
打印用户组和ID
> -u选项“仅打印有效用户ID”.
> >/dev/null 2>&1
将标准输入和标准错误重定向到/ dev / null,这意味着它们不会打印到终端.
useradd
创建一个新用户
> -g设置用户的初始组
> -s设置用户登录shell的名称
> -d设置用户登录目录的名称
> -m表示创建用户的主目录(如果它不存在).
> -p定义用户的加密密码.
为了将来参考,你可以通过做man来查找linux手册页中的命令.在命令行上.这些手册页告诉您命令的作用,并解释其所有选项.
像read这样的Bash内置函数都在一个单独的手册页上,这不是最容易使用的.对于那些我发现谷歌搜索他们更容易.通常http://ss64.com/将出现在结果中,其中包含来自bash内置手册页面的信息,但是通过命令分成不同的页面.我发现这更容易使用.