有什么方法可以在 Linux 的 Powershell 中連接命令?
這就是我想要運行的:
pwsh -Command Invoke-ScriptAnalyzer -Path . | ConvertTo-Json | Out-File -FilePath "/home/administrator/scripts/test.json"
因此,運行 Invoke-ScriptAnalyzer,將結果轉換為 Json 并將結果保存到 test.json。
在 | 之后它無法識別任何東西 符號:
./test.sh: line 1: ConvertTo-Json: command not found
./test.sh: line 1: Out-File: command not found
我需要在 bash 腳本中使用它,因此需要使用 -Command 選項啟動 pwsh。
有任何想法嗎?
謝謝
uj5u.com熱心網友回復:
正如所寫,您的|符號由您的 Linux shell(例如bash)解釋,而不是由 PowerShell 解釋。
有兩種說法:
- 最好參考整個
-Command引數('...'POSIX 兼容 shell 中bash的字串,例如使用字串的內容逐字):
pwsh -Command 'Invoke-ScriptAnalyzer -Path . | ConvertTo-Json | Out-File -FilePath "/home/administrator/scripts/test.json"'
- 另外,個別
\要-escape所有Linux-shell元字符,通過逐字,如\|和\"在這種情況下:
pwsh -Command Invoke-ScriptAnalyzer -Path . \| ConvertTo-Json \| Out-File -FilePath \"/home/administrator/scripts/test.json\"
注意:在這種情況下,在 之后pwsh接收多個引數-Command。但是,PowerShell 只是在將結果解釋為 PowerShell 代碼之前將它們連接起來。
這與 POSIX 兼容 shell 的命令列處理不同,后者將第一個后置-c引數解釋為隱式的臨時腳本, 附加引數作為逐字引數傳遞給該腳本,可像往常一樣訪問$1,...
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/390146.html
標籤:linux 电源外壳 乌本图 powershell-core 脚本分析器
