隨著windows10的bashshell的到來,您現在可以在windows10上建立和執行bashshell指令碼了。您還可以將Bash命令合併到Windows批處理檔案或PowerShell指令碼中。
即使你知道你在做什麼,這也不一定像看上去那麼簡單。Windows和UNIX使用不同的行尾字元,並且Windows檔案系統可以在Bash環境中的不同位置訪問。
相關:如何在windows10上安裝和使用Linux Bash Shell
在Windows上編寫shell指令碼時,請記住Windows和類似UNIX的系統(如Linux)在shell指令碼的文字檔案中使用不同的“行尾”字元。
換句話說,這意味著您不能簡單地在記事本中編寫shell指令碼。將檔案儲存在記事本中,Bash將無**確解釋它。但是,您可以使用更高階的文字編輯器–例如,Notepad++允許您透過單擊“編輯”>;“EOL轉換”>;“UNIX/OSX格式”為檔案指定UNIX行尾字元。
但是,最好只在Bash環境中編寫shell指令碼。基於Ubuntu的Bash環境附帶了vi和nano文字編輯器。vi編輯器功能更強大,但是如果您以前從未使用過它,您可能需要從nano開始。如果你是新來的,它更容易使用。
例如,要在nano中建立bash指令碼,可以在bash中執行以下命令:
nano ~/myscript.sh這將開啟指向名為“的檔案的Nano文字編輯器”myscript.sh“在使用者帳戶的主目錄中。(“~”字元表示您的主目錄,因此完整路徑為/home/username/myscript.sh.)
用以下行開始shell指令碼:
#!/bin/bash相關內容:Shell指令碼初學者指南:基礎知識
輸入要執行的命令,每個命令都在自己的行中。指令碼將依次執行每個命令。在一行之前新增一個“#”字元,將其視為“註釋”,這有助於您和其他人理解指令碼,但不會作為命令執行。有關更高階的技巧,請參閱Linux上Bash指令碼的更詳細指南。同樣的技術也可以在Windows上的Ubuntu上的Bash中使用。
請注意,無法在Bash環境中執行Windows程式。您只能使用Linux終端命令和實用程式,就像在典型的Linux系統上一樣。
例如,讓我們使用一個基本的“hello world”指令碼作為示例:
#!/bin/bash # set the STRING variable STRING="Hello World!" # print the contents of the variable on screen echo $STRING如果您使用的是Nano文字編輯器,則可以透過按Ctrl+O然後回車來儲存檔案。按Ctrl+X關閉編輯器。
您可能希望使指令碼可執行,這樣您就可以更輕鬆地執行它。在Linux上,這意味著您需要給指令碼檔案可執行的許可權。為此,在終端中執行以下命令,並將其指向指令碼:
chmod +x ~/myscript.sh要執行指令碼,現在只需在終端中鍵入其路徑即可執行它。以後無論何時要啟動指令碼,只要開啟bashshell並鍵入指令碼的路徑即可。
~/myscript.sh(如果指令碼在當前目錄中,則可以使用它執行/myscript.sh)
相關:如何在Windows中訪問Ubuntu Bash檔案(以及Bash中的Windows系統驅動器)
要訪問指令碼中的Windows檔案,需要在/mnt/c下指定它們的路徑,而不是它們的Windows路徑。例如,如果要指定C:\Users\Bob\Downloads\測試.txt檔案,則需要指定/mnt/c/Users/Bob/Downloads/測試.txt路徑。有關更多詳細資訊,請參閱我們的Windows10的bashshell檔案位置指南。
相關:如何在Windows10上設定預設的Linux發行版
最後,如果要將命令合併到現有的批處理檔案或PowerShell指令碼中,可以直接使用Bash-c命令執行Bash命令。
例如,要在命令提示符或PowerShell視窗中執行Linux命令,可以執行以下命令:
bash -c "command"這個技巧允許您將Bash命令新增到批處理檔案或PowerShell指令碼中。Bash命令執行時,將出現bashshell視窗。
更新:如果安裝了多個Linux環境,那麼可以使用wslconfig命令選擇執行bash-c命令時使用的預設Linux環境。
要在Windows中建立Bash指令碼的快捷方式,只需像普通方式一樣建立快捷方式。對於快捷方式的目標,使用上面概述的bash-c命令並將其指向您建立的bash指令碼。
例如,您可以將快捷方式指向“bash-c”~/myscript.sh檔案“”來執行上面的示例指令碼。也可以從命令提示符或PowerShell視窗執行此命令。
... 首先,讓我們從定義“shell指令碼”開始,即編寫要在bashshell中執行的指令碼。從技術上講,Powershell等其他指令碼語言也可以被稱為“shell指令碼”,但為什麼首先要關注shell指令碼,特別是Bash指令碼呢? ...
...然後從這裡開始。弄清楚它們是怎麼工作的。想一想你該如何為自己調整它們。一旦你對什麼是指令碼感到滿意,你就可以考慮潛入編碼的本質。 ...
... 兩者都將顯示為“Run命令”,可以選擇該命令立即開啟bashshell。使用這兩種方法的區別在於,它們在/mnt/c/Windows/System32目錄中開啟。這意味著您可以在Windows10中瀏覽System32子目錄。 ...
... bash指令碼只是一個純文字檔案,其中包含bashshell可以讀取和執行的一系列命令。Bash是catalinamacos之前版本和大多數Linux發行版中的預設shell。 ...
...Bourne shell在許多發行版中都是預設的。 rbash:這個受限的bashshell為其中執行的人員或指令碼提供了最少的功能。 ash:Almquist shell是bash的較輕版本。 破折號:Debian Alquist Shell是Ubuntu中的預設Shell指令碼。bash是預設的登入和互動式shel...
...動一個sh shell例項,並在其中執行命令。您的命令不會在bashshell中執行,bashshell與shshell相容,但具有更豐富的特性集。 如果您的命令或指令碼嘗試使用Bash提供的函式或工具,但sh沒有,它們將失敗。 很容易測試您的命令或指令...
...鍵或為鍵指定不同操作的快速方法。 例如,我們展示瞭如何使用AutoHotkey來禁用Windows鍵,防止它開啟“開始”選單並將您從全屏PC遊戲中帶出。不用撬開鍵盤上的鍵帽。 安裝autohotkey並獲取指令碼 下載自動熱鍵並開始安裝。接下...
使用別名和bashshell函式建立自己的Linux命令。馴服重複性的任務,截斷冗長的程序,並用您經常使用且難以記住的選項配置標準命令。 別名和shell指令碼是Linux和類Unix作業系統中的強大技術,允許您將命令列體驗磨練為您想要的...
如果您想在Linux、macOS或其他類似UNIX的系統上掌握bashshell,那麼特殊字元(如~、*、|和>)是至關重要的。我們將幫助您解開這些神祕的Linux命令序列,成為象形文字的英雄。 什麼是特殊字元(special characters)? bashshell以兩...