我正在玩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
答案 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//:/ })