作者johu (J先生)
看板Linux
標題[問題] shell的疑問
時間Mon Feb 17 14:04:45 2014
小弟要寫個shell,要先取得passwd裡之uid 在判斷是否印出,
但是在shell中使用for 就會出問題,程式如下(簡化過)
for name in `cat /etc/passwd`
do
echo $name
done
照理會印出跟指令 cat /etc/passwd 的資料一樣,
但實際上確不是這樣,在passwd檔中
dbus:x:81:81:System message bus:/:/sbin/nologin
用shell跑只會印出 message,並不是完整的整行資料.
請問是否也有人遇過這樣的問題.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 202.39.218.205
※ 編輯: johu 來自: 202.39.218.205 (02/17 14:05)
→ obarisk:權限問題? 02/17 14:30
→ johu:我用root 登入的,還需要注意那些呢? tks 02/17 14:40
→ danny8376:for會用空白字元(空格 換行)拆詞 02/17 16:20
→ johu:danny大 有何比較好的方式解嗎? tks 02/17 16:25
→ danny8376:改IFS => IFS=$'\n' 這樣就會只用換行拆 02/17 16:26
→ johu:>_< 感謝 可以了 02/17 16:41