shell中代码 . sh文件

  1. useradd cfsp > / dev/null 2>&1
  2. id cfsp >&/ dev/null
  3. if [ $?ne 0]
    分别表示什么样意思

useradd cfsp > /dev/null 2>&1 :你应该是想表示创建用户并导入/dev/null 中,且将标准错误重定向到标准输出,并且标准输出丢弃。 说白了就是把输出结果不管对错都丢弃。

id cfsp >&/dev/null 这句是个错误的写法,id cfsp, 表示查看cfsp用户信息,是不是想把结果输出到/dev/null 中 id cfsp &> /dev/null 这样写才对

if [ $?ne 0] 这句也是错误的, 你应该想写的是 判断 $?与0的对比情况 if [ $? -eq 0 ] ,这样写才对

$? 表示:最后运行的命令的结束代码(返回值)即执行上一个指令的返回值 (显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误)

if [ $?ne 0] : 标示: 如果上面一行命令执行错误(ne: not equal),也就是返回信号值不为0,将执行if中的语句。

1.这个命令创建了一个名为 "cfsp" 的新用户账户,并将任何标准输出(STDOUT)重定向到 null 设备(/dev/null),从而将其丢弃。它还将任何错误输出(STDERR)重定向到与 STDOUT 相同的位置(2>&1),这意味着任何错误消息也将被丢弃。

2.这个命令查询名为 "cfsp" 的用户账户的用户 ID (UID) 和组 ID (GID),并将结果输出到标准输出 (STDOUT)。但是,由于命令中使用了重定向符号 ">&",它将标准输出和标准错误输出都重定向到 null 设备 (/dev/null),从而将其丢弃,这意味着在命令执行后,不会有任何输出或错误消息被显示或记录。

3.这个命令是一个基于条件的语句,它用于检查上一个命令的退出状态码(exit code)是否为0(表示成功执行)。如果上一个命令的退出状态码不为0,那么条件为真,if语句中的命令将被执行。否则,if语句中的命令将被跳过。$?是一个特殊变量,用于获取上一个命令的退出状态码。ne是不等于的意思(not equal),所以if [ $?ne 0]表示如果上一个命令的退出状态码不等于0,则条件为真。