使用 `while` 和数字关系测试的 BASH 脚本错误

标签 bash shell ubuntu

这个问题不太可能帮助任何 future 的访客;它只与一个小地理区域、一个特定时刻或一个非常狭窄的情况相关,而这些情况通常不适用于互联网的全局受众。如需帮助使这个问题更广泛地适用,visit the help center .




9年前关闭。




我想创建 BASH 文件以使用 while 创建 50 个用户。
但是当我运行它时遇到了一些问题。

limite=51
num=1

while [$numero != $limite]
do
  echo -n 'enter your name: ' "$num" ; read name
  sudo useradd $name
  num=$(($num + 1))
done

问题来自第 1 行和第 4 行

不知道为什么!?

好吧,我有这个,它有效
limite=51
num=1

while [ $num != $limite ] ; do
  echo -n 'enter your name: ' "$num" ; read name
  sudo useradd $name
  num=$(($num + 1))   
done

谢谢你

最佳答案

使用 bash 成语,你的脚本最好写成

limite=51

for ((num=1;num<limite;++num)); do
    read -p "enter your name: $num" name
    sudo useradd "$name"
done

或者更好(它会更快):在一个文件中输入所有用户名,比如 user.txt ,每行一个名称,然后运行
while read name; do sudo useradd "$name"; done < user.txt

关于使用 `while` 和数字关系测试的 BASH 脚本错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13969100/

相关文章:

bash - 如果特定命令失败,不要中止脚本

Eclipse 窗口不会停靠在 Ubuntu 上

ubuntu - ubuntu 14.04 上的 dnx web 抛出 "System.Runtime.InteropServices.Marshal"异常 (1.0.0-beta8)

bash - 第二个过程从哪里来

bash - 相当于 dash shell 中的 pipefail

bash - 语法错误: unexpected end of file trying to run a simple bash script

java - 如何创建 AppleScript 或命令文件以在 Mac OS 上启动 Java 应用程序?

shell - 找不到 Emacs shell 命令

php - shell_exec 不工作无法转换 pdftotext

linux - ESXi 5.1 虚拟机不再能够从其他虚拟机挂载 NFS 共享