具有 DD-WRT 的路由器上的腳本無法執行,因為找不到該腳本

具有 DD-WRT 的路由器上的腳本無法執行,因為找不到該腳本

我有一台 netgear nighthawk r7000 路由器,其 DD-WRT“Kong Mod”版本為:2016 年 4 月 19 日。我試著直接在路由器上使用 Pixelserv 來阻止廣告教程(是的,我已將腳本設定為可執行)。

不幸的是它不起作用。

教程中寫道,像這樣保存啟動命令/jffs/dns/disable_adds.sh應該會導致腳本在啟動時運行。

當嘗試透過路由器 Web 介面的命令 shell 直接啟動腳本(如上面所寫)時,我收到以下訊息:

sh: eval: line 1: /jffs/dns/disable_adds.sh: not found

echo $PWD在提到的命令 shell 中嘗試返回/wwwwhich 是層次結構中與 平行的資料夾/jffs

在同一個 shell 中使用ls ../jffs/dns確實表明該腳本已在其應有的位置找到。嘗試執行腳本../jffs/dns/disable_adds.sh會產生與上面相同的訊息。

似乎值得注意的是,即使只有 echo,輸出欄位有時也不會顯示任何內容,而且多個命令似乎也不起作用

我不知道現在如何繼續找出路由器不承認腳本存在的原因以及如何讓它運行。

編輯:我想我應該提到,我已經嘗試按照上述教程末尾的故障排除步驟進行操作,並且我正在嘗試讓它在裝有 Windows 7 的電腦上工作。

Edit2:我按照評論中的建議對文本進行了一些格式化,並添加了一些更多資訊。我希望它現在更具可讀性。

答案1

我猜你沒有指定舍邦適當地。

當您執行腳本時,這將告訴系統如何執行它,請嘗試以下範例:

嘗試用作/bin/bat解釋器(/bin/bat不存在):

$ cat <<EOF >test.sh
> #!/bin/bat
> hello
> EOF
$ chmod +x test.sh
$ ./test.sh
-bash: ./test.sh: /bin/bat: bad interpreter: No such file or directory

嘗試用作/bin/cat解釋器:

$ cat <<EOF >test.sh
> #!/bin/cat
> hello
> EOF
$ chmod +x test.sh
$ ./test.sh
#!/bin/cat
hello

在精簡/嵌入式系統上,您很可能會遇到not found上面看到的錯誤。

檢查您是否正確輸入了重要的第一行 ( #!...),並且其中列出的文件存在,並且可以無錯誤地執行。

您通常會想要類似的東西#!/bin/sh(如他們的 中指定的disable_adds.sh)。

編輯:您也可能遇到行結尾問題 - 確保 WinSCP 或您用來傳輸檔案的任何程式無法處理它們。WinSCP常見問題解答

答案2

我遇到過同樣的問題。我在我的部落格上記錄了我的解決方案,http://studioforge.xyz/how-to-configure-cisco-linksys-wrt54g-v-2-to-run-pixelserv-on-dd-wrt/,它歸結為在其中一個文件上運行 dos2unix 並重新上傳。

相關內容