我正在寻找一个 Linux 命令行工具,允许我存储我的最喜欢/最常用/最难记住bash 命令并在需要时快速运行它们。
我不喜欢使用别名,因为我想避免名称冲突。alias
是一个方便的事情,但这不是我正在寻找的,这是一些命令行片段库。
我想要的一个例子是:
$ favorite --add hello 'echo Hello World!'
$ favorite hello
Hello World!
$ favorite --delete hello
$ favorite hello
favorite: shortcut 'hello' not defined
$ _
我想我可以自己编写这个工具(也许使用python-cliapp或者php5-cli),但如果某些东西已经存在,我宁愿不重新发明轮子。
答案1
如果您不介意缺少语法错误等错误消息,您可以使用这个简单的 bash 脚本:
#!/bin/bash
case $1 in
--add)
if [ -a ~/.favorites/$2 ]; then
echo favorite: Shortcut \'$2\' already exists.
else
echo $3 >> ~/.favorites/$2
fi
;;
--delete)
if [ -a ~/.favorites/$2 ]; then
rm ~/.favorites/$2
else
echo favorite: Shortcut \'$2\' does not exist.
fi
;;
*)
if [ -a ~/.favorites/$1 ]; then
$(cat ~/.favorites/$1)
else
echo favorite: Shortcut \'$1\' does not exist.
fi
esac
答案2
似乎编写脚本并将它们放入~/bin
(然后放在您的 中PATH
)是一种可接受的替代方法。除非您希望在按下执行命令之前能够查看和编辑命令,否则这种方法是可行的ENTER,但您上面的例子并未表明这一要求。