tcsh环境下cd别名新旧环境行为差异及还原方案问询
问题解决方法
原因说明
该行为和Konsole、KDE版本无关,是新旧tcsh版本的命令执行逻辑差异导致:旧版tcsh中,用分号分隔的命令序列如果前一条命令执行失败,会自动中断后续命令执行;新版tcsh不再遵循该逻辑,无论前序命令是否执行成功,都会按顺序执行所有分号分隔的命令。
修复方案
直接修改你配置文件(一般是.cshrc或者.alias文件)中的cd别名定义即可:
将原来的
alias cd 'cd \!*; ll'
替换为
alias cd 'cd \!* && ll'
&&逻辑符的作用是仅在前一条命令执行成功(退出码为0)时才执行后一条命令,刚好匹配你需要的逻辑:切换目录成功才执行ll别名,路径不存在、切换失败时不执行ll。
修改完成后执行source ~/.cshrc(如果别名存在其他配置文件就替换为对应文件路径)让配置即时生效即可。
补充说明
你新环境执行echo $version返回3属于异常情况,大概率是version变量被其他自定义配置覆盖了,可以执行tcsh --version查看实际的tcsh版本号,不影响上述方案的执行效果。
内容的提问来源于stack exchange,提问作者renvill
相关产品推荐
相关产品推荐

