CentOS7 shell脚本未按预想执行?

#!/bin/sh
echo '创建管理员用户:'
echo ''
while :
do
  read -p '用户名:' USER_NAME
  USER_COUNT=`cat /etc/passwd | grep '^${USER_NAME}:' -c`
  if [ $USER_COUNT -ne 1 ]
    then
    read -p '密码:' USER_PWD
    useradd $USER_NAME
    echo $USER_PWD | passwd $USER_NAME --stdin
    echo '创建完成!'
    break
    else
    echo '用户已存在!'
    echo ''
  fi
done

输入一个已存在的用户名 hahaha $USER_COUNT -ne 1 返回 0

但在控制台执行

cat /etc/passwd | grep '^hahaha:' -c

返回 1

请问应该怎么写呢?

阅读 1.9k
1 个回答

你可以在输入后打印一下 echo ${USER_NAME} 看是不是符合你的预期输入

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进