快速提问。我喜欢emacs。我不喜欢打字,所以我喜欢使用e
来调用emacs。
以前我的.bash_profile(OS X)配置为:alias e="emacs ."
。但是,当我只想编辑一个文件时,我已经厌倦了仍然需要键入emacs {file}。
所以我试图用一些谷歌搜索来鞭打它,但是bash抱怨[]
:
###smart emacs, open file, or if none, dir
e()
{
if [$1]; then
emacs $1
else
emacs .
fi
}
我想用它来做:e something.c
或只是e
。
答案 0 :(得分:2)
尝试
if [ $# -ge 1 ]; then
emacs "$@"
我认为bash在空间上非常特殊。我甚至惊讶你可以省略函数名和()之间的空格。 (另外,使用$ @应该打开你传递的所有文件。)
ETA:在e "" foo.txt
...
答案 1 :(得分:1)
#!/bin/bash
###smart emacs, open file, or if none, dir
e()
{
if [[ -z "$1" ]]; then # if "$1" is empty
emacs .
else
emacs "$1"
fi
}