Zsh

用不同的shell啟動xterm並執行命令

  • June 26, 2017

我的預設 shell 環境是bash,我想啟動xtermzsh執行一些命令。

一般來說,要執行一些命令,我​​使用以下

xterm -e "ls -lrt;pwd;whoami"

這是在bashshell 中使用xterm.

xterm使用不同的外殼開始,我使用以下內容。

xterm -ls /bin/zsh

那麼,我怎樣才能將這兩者結合起來呢?當我嘗試。我收到以下錯誤。

[dinesh@mypc]$ xterm -ls /bin/zsh -e "ls"
xterm:  bad command line option "/bin/zsh"

如何解決這個問題?

不,該-ls選項xterm不帶參數,它只是指定xterm啟動的 shell 應該是登錄 shell。

這是標誌的完整部分,-ls其中與您的問題相關的部分突出顯示:

-ls 該選項表示在
xterm 視窗將是一個登錄 shell(即第一個字元
argv[0] 將是一個破折號,向 shell 表明它
應該讀取使用者的 .login 或 .profile)。

如果 -e 是 -ls 標誌和 loginShell 資源將被忽略
也給了,因為xterm不知道怎麼做shell
在執行給定命令之後啟動給定命令
login shell - 使用者選擇的 shell 不必是 Bourne
畢竟是殼。此外, xterm -e 應該提供一個
為其他需要的應用程序提供一致的功能
在視窗中啟動文本模式程序,如果 loginShell 是
不忽略, ~/.profile 的結果可能會干擾
那。

          **如果你確實想要同時使用 -ls 和 -e 的效果,你可以
逃避類似的事情

xterm -e /bin/bash -l -c "我的命令在這裡"**

最後, -ls 沒有被完全忽略,因為 xterm -ls -e
確實寫入 /var/run/wtmp 條目(如果配置為這樣做),
而 xterm -e 沒有。

引用自:https://unix.stackexchange.com/questions/373377