[英]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.