gpt4 book ai didi

Linux bash 脚本 - For 循环问题

转载 作者:太空狗 更新时间:2023-10-29 11:13:33 26 4
gpt4 key购买 nike

我正在编写一个 bash 脚本,它将在批处理过程中添加用户。这段代码如下:

#!/bin/bash
# A script that creates users.

echo "This is a script to create new users on this system."
echo "How many users do you want to add?"
read am
echo " "

for i in {0..$am..1}
do
echo "Enter a username below:"
read usern
sudo useradd $usern

sudo passwd $usern

echo " "
echo "User $am '$usern' added."
done

在这种情况下,我想创建 4 个用户。我通过并输入了用户名“callum3”并将密码设置为“1234”以便于登录。一旦我输入了所有内容(正确,我可以添加),终端窗口将显示以下内容。

User 4 'callum3' added.

这表明我的 for 循环实际上没有工作,而我看不出它有任何问题。我曾尝试使用 while 循环,但也没有成功。

我是不是犯了一个新手错误,还是有更深层次的问题?

最佳答案

虽然我怀疑它,但为了更好地理解您的脚本可能有什么问题,我将它粘贴到 shellcheck.net 中。问题出在行中:

for i in {0..$am..1}

Bash 不支持大括号范围扩展中的变量。也就是说,您不能在类似 {..} 的表达式中使用变量。

相反,使用 seq 。使用 seq $var 可以得到从 1(默认值)到 $var 的序列:

for i in $(seq "$am")

关于Linux bash 脚本 - For 循环问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29564729/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com