Zsh
用不同的shell啟動xterm並執行命令
我的預設 shell 環境是
bash
,我想啟動xterm
並zsh
執行一些命令。一般來說,要執行一些命令,我使用以下
xterm -e "ls -lrt;pwd;whoami"
這是在
bash
shell 中使用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 沒有。