[問題] shell scripts 中,遇到空白怎麼處理?

看板Linux作者 (archer)時間17年前 (2009/01/16 08:17), 編輯推噓0(008)
留言8則, 3人參與, 最新討論串1/2 (看更多)
我想寫個 scripts ,依照名稱搬移到適當的目錄 若目錄不存在,則以名稱命名($F),建立一個新目錄後(/home/user/doc/$A), 再搬進去 shell scripts 如下 /var/www/html drwxr-xr-x 13 root root 4096 2008-06-02 09:06 manual drwxr-xr-x 2 root root 4096 2008-06-02 09:06 nut cgi bin drwxr-xr-x 5 root root 4096 2009-01-15 13:10 ora doc F=`find /var/www/html -type d -print` for A in $F; do if [ -d /home/user/doc/$A ]; then mv $A /home/user/doc else mkdir /home/user/doc/$A mv $A /home/user/doc/ done 問題來了,當這支 scripts 遇到 "nut cgi bin" 時,會把它當成 nut cgi bin 三個字串 我嘗試過在 scripts 中把 $A 用 "$A" 包起來,但沒有作用 請問空白該怎麼處理? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.130.203.236

01/16 10:51, , 1F
試試看"${A}"
01/16 10:51, 1F

01/16 10:57, , 2F
順便看看$IFS是不是空白 如果是 把IFS改成換行試試看
01/16 10:57, 2F

01/16 11:32, , 3F
a .. 樓上指的 $IFS 是什麼我不了解耶~
01/16 11:32, 3F
※ 編輯: aeolus0829 來自: 220.130.203.236 (01/16 11:42)

01/16 11:43, , 4F
1f的方法確定不行,$A 和 "${A}" 的結果是一樣的
01/16 11:43, 4F

01/16 13:37, , 5F
雙引號
01/16 13:37, 5F

01/16 13:39, , 6F
我今天才寫了個跑convert的script用雙引號就沒問題。
01/16 13:39, 6F

01/16 14:40, , 7F
可以請樓上貼一下你的嗎?
01/16 14:40, 7F

01/16 15:22, , 8F
man bash 找IFS 就知道IFS是什麼了
01/16 15:22, 8F
文章代碼(AID): #19Rz8dJS (Linux)
文章代碼(AID): #19Rz8dJS (Linux)