必須先確認此Script是可執行的
# chmod 755 filename
一般在 Shell Script的第一行會寫由哪一個 Shell來執行,如下列所示
#!/bin/sh
....
[狀況一]:
執行 ./filename 時,出現 "bad interpreter:No such file or directory"等訊息時
[Solution]:確認 Script是什麼格式 ( dos、unix、mac)
1. vi filename,再執行命令
:set ff?
可以看到 fileformat是dos 或 unix的字樣,如果是dos格式,使用 :set fileformat=unix,強制成為 unix格式,存檔退出,再執行試試看。
2. 用 od -t x1 filename
如果看到 " 0d 0a"的字串,這個檔案為 dos格式,只有 0a而沒有0d,則是unix格式。
3. 除了用 vi 的命令變更檔案格式,也可以使用 unix2dos 或 dos2unix這兩個程式
# dos2unix filename <--變更為unix格式
[狀況二]:
執行 Script時,出現 "permission denied"的訊息
[Solution]:查看 Script 的所在目錄,mount table是否有加入 "noexec"的option
# cat /etc/fstab
/dev/hda5 /ftp ext3 noexec,user_xattr 0 2
/dev/hda7 /home ext3 defaults 0 2
/dev/hda9 /tmp ext3 defaults 0 2
沒有留言:
張貼留言