[問題] 用sh讀一個文字檔會有錯誤

作者: jubel (木亟缶夬金戔)   2016-04-13 10:08:13
幫朋友發問的
我用sh讀一個文字檔的內容,裏面是e-mail帳號,然後用
passwd去停用e-mail的登入密碼,以下程式會有error,該如何修改?
#!/bin/bash
filename="/var/www/html/lock_mail"
exec < $filename
while read var
do
sudo passwd -l $var
done
sudo passwd -l testjen
sudo passwd -l testjen1
sudo passwd -l testjen2
錯誤訊息如下:
'.sswd: Unknown user name 'testjen
'.sswd: Unknown user name 'testjen1
'.sswd: Unknown user name 'testjen2
Locking password for user testjen.
passwd: Success
Locking password for user testjen1.
passwd: Success
Locking password for user testjen2.
passwd: Success
謝謝
作者: kerwinhui (kezza)   2016-04-13 10:36:00
用bash就不要用sh呼叫…另外,有手動改過 /etc/shadow 或 /etc/passwd 嗎?如果是用 sudo -- "password -l $var" 呢?passwd 不是 password
作者: yvb   2016-04-13 15:02:00
猜測輸入檔為DOS格式. while前加一列 IFS=$' \t\r\n' 試試.請先 file 一下該檔, CRLF 換行是DOS格式, CR換行是MAC格式.https://zh.wikipedia.org/wiki/%E6%8F%9B%E8%A1%8C

Links booklink

Contact Us: admin [ a t ] ucptt.com