如何检查我的 Bash 函数是否有参数?
快问。我喜欢 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 some.c
或者,只是e
。
Quick question. I love emacs. I hate typing stuff though, so I like to use e
to invoke emacs.
Previously I had my .bash_profile (OS X) configured as: alias e="emacs ."
. However, I was tired of still having to type emacs {file} when I just wanted to edit one file.
So I tried to whip this up, from some googling, but bash is complaining about the []
:
###smart emacs, open file, or if none, dir
e()
{
if [$1]; then
emacs $1
else
emacs .
fi
}
I want to use this to do: e something.c
or, just e
.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
尝试一下
我认为 bash 对于空格非常奇特。我什至感到惊讶的是,您可以省略函数名称和 () 之间的空格。 (此外,使用 $@ 应该打开您传递的所有文件。)
ETA:更好地检查参数数量,以防
e "" foo.txt
...Try
I think bash is very peculiar about spaces. I'm even surprised you're allowed to omit a space between function name and (). (Also, using $@ should open all files you pass.)
ETA: better check against number of arguments, in case of
e "" foo.txt
...