groupadd的问题

时间:2014-03-02 15:10:00

标签: linux bash

我正在玩linux一点点,但遇到了问题:

# main.sh
#!/bin/bash

while read line
do
    line=(${line//:/ })
    groupadd ${line[0]}
done <"config/groups.config"

# config/groups.config
Directie

# output
' is not a valid group name

当我这样做时,它有效:

#!/bin/bash
groupadd Directie

感谢您的帮助! - Gerben van der Meer

1 个答案:

答案 0 :(得分:1)

config/groups.config有DOS行结尾,您需要将其删除。 ${lines[0]}中的实际值为Directie\r,其中包含奇怪的错误消息,实际上类似于

groupadd: 'Directie\r' is not a valid group name.

\r会导致您的终端将光标移回到行的开头,这会导致关闭单引号之前的所有内容都被错误消息的其余部分覆盖。

您也可以在阅读每一行后简单地去掉回车。

while read line
do
    line=${line#$'\r'}
    line=(${line//:/ })