在别名中使用bash with screen



我有一个screen会话,总是在一个单独的用户中运行(对于minecraft服务器)。每次我想连接到这个屏幕时,我使用su -c 'screen -r mc-1.18.2' minecraft连接回这个屏幕。

我想为这个命令创建一个别名,这样我就不必每次都把它键入或在命令历史记录中查找。我添加了alias mcconsole="su -c 'screen -r mc-1.18.2' minecraft"到我的~/。bash_aliases文件夹。我的其他别名工作得很好,但当我运行mcconsole时,我留下了一个全新的screen会话。我不确定在附加到屏幕会话(它正在运行,因为我可以正常附加到它)时打嗝在哪里。

可以试着把单引号和双引号颠倒一下,比如:

alias mcconsole='su -c "screen -r mc-1.18.2" minecraft'

或转义双引号内:

alias mcconsole="su -c "screen -r mc-1.18.2" minecraft"

听起来像是使用别名时引号发生了一些奇怪的事情。请尝试使用shell函数。

mcconsole() {
su -c 'screen -r mc-1.18.2' minecraft
}

最新更新