我目前设置了以下别名:
alias emacs='open -a Emacs'
但显然,如果文件已经不存在,它会给我一个错误。有没有办法改变这个别名基本上说“如果文件存在在Emacs中打开它,否则,创建文件,然后在Emacs中打开它?”
谢谢!
答案 0 :(得分:3)
使用函数而不是别名。函数可以完成别名可以做的所有事情。
emacs() {
if [ ! -f "$1" ]; then
touch "$1"
fi
open -a Emacs "$1"
}
这适用于一个文件。对于多个文件,您可以使用它。
emacs() {
for file; do
if [ ! -f "$file" ]; then
touch "$file"
fi
done
open -a Emacs "$@"
}
答案 1 :(得分:1)
您可以考虑--args
open
选项的别名,如下所示:
alias emacs='open -a Emacs --args= '
然后将其称为:
emacs $PWD/file.txt
根据man open
:
--args
All remaining arguments are passed to the opened application in the argv parameter
to main(). These arguments are not opened or interpreted by the open tool.
答案 2 :(得分:0)
或者创建一个名为omacs的小脚本:
#!/bin/bash
for f in $*; do if [ -f $f ]; then open -a Emacs $f; else touch $f; open -a Emacs $f; fi; done
并创建此别名
alias emacs='omacs'
适用于多个文件。