簡體   English   中英

如何在 Windows 命令提示符下運行 .sh?

[英]How to run .sh on Windows Command Prompt?

如何在 Windows 7 命令提示符上運行 .sh? 當我嘗試在其中運行此行時,我總是收到此錯誤,

app/build/build.sh

錯誤,

'app' is not recognized...

或者,

bash app/build/build.sh

錯誤,

'bash' is not recognized...

任何想法我錯過了什么?

這里的屏幕抓取,在此處輸入圖片說明

安裝git 在安裝 GIT 期間,通過選擇其選項將 GIT Bash 添加到 Windows 上下文菜單。 安裝后右鍵單擊您的文件夾選擇GIT Bash Here (見附圖)並使用您的 sh 命令,例如:

sh test.sh

在此處輸入圖片說明

該錯誤消息表明您尚未安裝bash ,或者它不在您的PATH

Google 的熱門搜索引擎是http://win-bash.sourceforge.net/,但您還需要了解大多數 Bash 腳本需要類 Unix 環境; 所以僅僅安裝 Bash 可能不太可能讓你運行你在網上找到的腳本,除非它是專門為這個特定的使用場景設計的。 通常的解決方案是https://www.cygwin.com/,但有許多可能的替代方案,具體取決於您想要完成的目標。

如果 Windows 不是您使用場景的核心,安裝免費操作系統(可能是虛擬化的)可能是最簡單的方法。

第二條錯誤消息是由於 Windows 名義上接受正斜杠作為目錄分隔符,但在這種情況下,它被解釋為開關分隔符。 換句話說,Windows 將您的命令行解析為app /build /build.sh (或者,用 Unix 選項約定來解釋, app --build --build.sh )。 您可以嘗試app\\build\\build.sh但由於上述情況,它不太可能奏效。

運行.sh文件的最常見方法是使用sh命令:

C:\>sh my-script-test.sh 

另一個不錯的選擇是安裝CygWin

Windowshome位於:

C:\cygwin64\home\[user]

例如,我使用bash命令執行我的my-script-test.sh文件,如下所示:

jorgesys@INT024P ~$ bash /home/[user]/my-script-test.sh 

你也可以使用cmder

Cmder 是一個軟件包,純粹出於對 Windows 上缺少漂亮的控制台模擬器的挫敗感而創建的。 它基於令人驚嘆的軟件,並加入了 Monokai 配色方案和自定義提示布局,從一開始就看起來很性感

截屏

管理員網

在 Windows 10 周年更新中,在 Windows 上的 ubuntu 中/使用 bash 運行 shell 命令更加容易

我試圖為我的 x-wrt ​​r7000 netgear 路由器設置我的區域,我發現以下對我有用,在 windows 上的 ubuntu 上使用 bash,你必須啟用在 windows 功能中找到的子系統,並打開開發模式

ssh admin@192.168.1.1 < /mnt/c/ccode-eu.sh

Windows 中的新功能 - 在 Windows 上的 ubuntu 上運行 bash - 在 Build 會議之后的 Windows 10“Insiders”版本中可用:

https://blogs.windows.com/buildingapps/2016/03/30/run-bash-on-ubuntu-on-windows/

我個人使用了這個批處理文件,但它確實需要安裝 CygWin(如圖所示的 64 位)。 只需將文件類型 .SH 與此批處理文件(在我的情況下為 ExecSH.BAT)相關聯,您就可以雙擊 .SH 並運行它。

@echo off
setlocal

if not exist "%~dpn1.sh" echo Script "%~dpn1.sh" not found & goto :eof

set _CYGBIN=C:\cygwin64\bin
if not exist "%_CYGBIN%" echo Couldn't find Cygwin at "%_CYGBIN%" & goto :eof

:: Resolve ___.sh to /cygdrive based *nix path and store in %_CYGSCRIPT%
for /f "delims=" %%A in ('%_CYGBIN%\cygpath.exe "%~dpn1.sh"') do set _CYGSCRIPT=%%A
for /f "delims=" %%A in ('%_CYGBIN%\cygpath.exe "%CD%"') do set _CYGPATH=%%A

:: Throw away temporary env vars and invoke script, passing any args that were passed to us
endlocal & %_CYGBIN%\mintty.exe -e /bin/bash -l -c 'cd %_CYGPATH%;  %_CYGSCRIPT% %*'

基於原創作品。

在 Windows 操作系統中安裝GitBash工具。 在 System 的環境變量中設置以下Path用於 Git 安裝。

<C:\\>\\Git\\bin 中的程序文​​件

<C:\\>\\Git\\usr\\bin 中的程序文​​件

cmd窗口中鍵入“ sh ”以重定向到 Bourne shell 並在終端中運行您的命令。

您是否嘗試過cd.sh所在的根目錄以便從那里執行它,而不是像您在問題中顯示的那樣寫下文件的路徑?

像這樣:

$ cd app/build
$ build.sh

我按照此處的指導在 Windows 10 中使用 Windows 10 Bash shell aka Linux Subsystem aka Ubuntu

只需安裝 git 並通過“bash <name.sh>”運行您的 .sh 文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM