Bash配置screen命令别名无法正常附加已有运行会话问题
问题根源
你的别名配置引号嵌套出错了。Bash解析双引号包裹的别名内容时,内层单引号没有把screen -r mc-1.18.2识别为一个完整的命令字符串,传给su -c的参数被拆分,screen收不到-r mc-1.18.2的会话恢复参数,就会默认创建新会话。
执行alias mcconsole就能看到当前别名的实际展开结果,能直接看到参数拆分的异常。
修复方法
二选一修改~/.bash_aliases里的别名配置即可:
- 方案1(推荐):调换引号嵌套顺序,用单引号做别名外层包裹,内层命令用双引号,避免解析冲突:
alias mcconsole='su -c "screen -r mc-1.18.2" minecraft'
- 方案2:保留原有双引号外层结构,对内层单引号做转义,让Bash正确识别引号边界:
alias mcconsole="su -c \'screen -r mc-1.18.2\' minecraft"
生效操作
修改完成后执行以下命令加载新配置,无需重启终端:
source ~/.bashrc
注:绝大多数Linux发行版默认会在~/.bashrc中自动加载~/.bash_aliases的配置,如果你手动修改过bashrc相关逻辑,也可以直接执行source ~/.bash_aliases生效。
内容的提问来源于stack exchange,提问作者That_Dude
相关产品推荐
相关产品推荐

