use*_*358 5 shell zsh interactive execute
我想在调用后zsh(即执行 .zshrc 后)运行一组预定的命令,完成后将用户返回到交互式 shell。
我的脑海中浮现出这样的事情:
urxvt -e 'zsh -c ". scriptname"'
Run Code Online (Sandbox Code Playgroud)
但我不想zsh在脚本完成后退出并进入终端,而是希望在最后有一个交互式 shell。这个想法只是为了让用户不必在登录时键入“.scriptname”。
应用程序:多个用户正在使用同一帐户(奇怪但真实),我想帮助调整用户特定设置。是的,我知道可以使用不同的帐户:-)
不是你真正想要的,但应该有你想要的结果。您可以使用环境变量将用户特定脚本的名称传递给 source .zshrc(或其他适当的启动文件)。
urxvt -e 'USERSCRIPT=scriptname zsh'
Run Code Online (Sandbox Code Playgroud)
然后.zshrc对于实际用户,包括
. $USERSCRIPT
Run Code Online (Sandbox Code Playgroud)
(所有这一切并不是说没有选项可以运行命令然后保持交互模式;我只是找不到方法来做到这一点,所以我提供了这个解决方法。)