簡體   English   中英

如何在 zsh 中獲取 bash 腳本

[英]How to source bash script in zsh

我有 bash 腳本,它大量使用 bash 功能並且不在 zsh、dash 和 sh 中運行。

我最喜歡的 shell 是 zsh。 如何將此 bash 腳本導入 zsh shell?

我試過了

function in() {
    bash -c "'$@ ; exec zsh'"
}

但這給了我這樣的語法錯誤

❯ in source t.bash
t.bash ; exec zsh': -c: line 1: unexpected EOF while looking for matching `''
t.bash ; exec zsh': -c: line 2: syntax error: unexpected end of file

我也嘗試使用 xargs 但我的 bash 腳本設置的環境變量未在 zsh 中設置

function in () {
   echo -c "'$@ ; exec zsh'" | xargs -t bash
}

但是我的 bash 腳本設置的環境變量未在 zsh 中設置

復制粘貼xargs -t顯示的命令確實有效

您說“復制粘貼 xargs -t 顯示的命令確實有效”。

所以...如果你改變了

function in () {
   echo -c "'$@ ; exec zsh'" | xargs -t bash
}

function in () {
   echo -c "'$@ ; exec zsh'" | xargs -t bash >"${BATCH_FILE}"
   chmod 754 "${BATCH_FILE}" ; "${BATCH_FILE}"
}

那不會給你你需要的嗎?

暫無
暫無

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

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