CSH Shell中为nedit命令创建自动加.txt后缀的别名问询
在CSH Shell中实现自动添加.txt后缀的nedit别名
当然可行啦!不过你当前用的alias n "nedit"只是简单的命令替换,没法自动给参数加上.txt后缀,得稍微调整下别名写法,利用CSH的参数扩展功能就能实现你要的效果。
基础实现方案
直接在你的.cshrc或.tcshrc配置文件里添加这个别名:
alias n 'nedit \!^.txt'
简单解释下各部分的作用:
\!^:这是CSH的特殊符号,专门指代你输入n之后跟的第一个命令行参数(也就是你要编辑的文件名).txt:就是我们要自动追加的文件后缀- 当你输入
n newfile时,这个别名会自动展开成nedit newfile.txt,完全符合你的需求
进阶优化:处理多参数与重复后缀
如果你有时候需要一次性编辑多个文件,或者担心输入已带.txt的文件名会变成xxx.txt.txt这种重复后缀的情况,用个小脚本会更灵活(毕竟CSH的别名能支持的逻辑判断有限):
- 在你的
~/bin目录下创建一个名为n的文件,写入以下内容:
#!/bin/csh foreach file ($*) if ($file:e != "txt") then set newfile = "$file.txt" else set newfile = "$file" endif nedit $newfile end
- 给这个脚本添加执行权限:
chmod +x ~/bin/n
- 确保
~/bin在你的环境变量PATH中(一般CSH默认会包含,如果没有的话,在.cshrc里加一行set path = ($path ~/bin)即可)
这样不管你输入n newfile、n existingfile.txt,还是n file1 file2,脚本都会自动处理:不带.txt的文件名自动加后缀,已经带的保持原样,还能批量打开多个文件。
内容的提问来源于stack exchange,提问作者Ashok Kumar Mishra
相关产品推荐
相关产品推荐

