[英]How to run zookeeper.sh file in windows
我正在關注本教程,我必須在其中運行此命令才能啟動 zookeeper 服務器。
./bin/zookeeper-server-start.sh config/zookeeper.properties
但問題是這個命令不能正常工作。 我發現 .sh 文件是需要 cygwin 的 bash 文件。 我已經安裝了它,然后像這樣運行命令
C:\cygwin64\bin\bash.exe ./bin/zookeeper-server-start.sh config/zookeeper.properties
但它顯示:
我可以確認在 bin 目錄中文件存在。 我在做什么錯?
注意:我已經成功測試了bin/windows
zookeeper bat 文件,但我想通過 .sh 文件運行它作為我正在使用的 kafka 安全教程。
從您的屏幕截圖中,我得出結論,您正在使用 Cygwin。 因此,請將cygwin標簽添加到您的問題中。
從錯誤信息中可以看出,bash沒有找到命令dirname
,所以假設你的Cygwin安裝沒有損壞,我假設PATH設置不正確; 在您的設置中,dirname.exe 應該在 C:/cygwin64/bin 中(請驗證這一點)。
您對 bash.exe 的使用有點不尋常,因為您直接從 Windows cmd 提示符運行它。 更常見的方法是從“Cygwin 終端”使用它,在安裝 Cygwin 時,您會創建一個 Windows 鏈接,或者使用另一個合適的終端程序; 我正在使用例如 mintty 來完成這項任務(也可以通過 Cygwin 安裝程序獲得)。
話雖如此,它可以運行在你正在做的方式bash.exe,但你必須確保,至少路徑是正確設置。 這樣做的一種可能性是將 C:\\cygwin64\\bin 添加到您的 Windows PATH,但這有一個缺點,即某些命令在 Windows 世界和 Cygwin 中具有相同的名稱,盡管它們用於完全不同的目的,並且這遲早會咬你的。 另一個問題是,在某些時候,除了 PATH 之外,您還將依賴其他 bash 特定設置。
實現目標的更好方法是 IMO 確保系統范圍的 bash 初始化文件來自 bash。 如果我必須從 Windows cmd 提示符運行腳本,我會通過
C:\cygwin64\bin\bash.exe --login YOURSCRIPT
這將在運行 YOURSCRIPT 之前讀取文件(在您的設置中) C:\\cygwin64\\etc\\profile
,因此您可以通過查看此文件來檢查 PATH 是否正確設置在那里。 在默認安裝中,應該是這種情況。
讀取此文件后,它將嘗試讀取 Cygwin 主目錄中的.bash_profile
文件,因此,如果您需要為(非交互式)bash 腳本進行其他設置,請創建此文件並將您的設置放在那里。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.