0

我正在编写一个 bash 函数,它基本上包装了 cd 命令,添加了一些额外的功能。

这可以正常工作,但是一旦出现问题(给定路径不存在,用户没有足够的权限进入目录),就会向用户显示来自 cd 的错误消息。

简单的例子:

$ echo $PWD
/home/helpermethod/workspace
$ up helpermethod # goes up to the first directory named helpermethod
$ echo $PWD
/home/helpermethod
$ up foo
bash: cd: /home/helpermethod/foo: No such file or directory

是否可以让这些错误消息冒泡,或者我应该向用户提供更有意义的东西(并隐藏实际的实现)?

编辑

该功能将被(希望)很多用户使用。

编辑 2

该函数的作用...up让用户输入当前目录上方目录的基本名称。

所以如果你有例如

$ echo $PWD /home/helpermethod/workspace/java

然后你输入

$ up home

PWD取走,basename 之后的部分从PWD.

如果有多个目录具有相同的基本名称,它还允许输入“路径”:

$ echo $PWD
/foo/baz/foo/bar
$ up baz foo # go to foo, which lies above baz
4

3 回答 3

1

这完全取决于您的要求。你是为自己写这个函数吗?如果是这样,它只取决于你的喜好。你是给别人写的吗?然后这取决于他们的喜好和要求。

于 2012-05-29T09:34:42.423 回答
1

您是否提供自己的错误消息取决于提供的错误消息在cd您的函数功能的上下文中是否有意义。由于您尚未描述函数的功能集,因此无法判断某些消息是否被替换后是否更有意义。

于 2012-05-29T13:06:34.537 回答
1

我会自己处理常见的错误情况,给出更好的错误,然后让不常见的错误冒出来。例如,输入错误的字符串很可能经常发生,而错误消息并没有提供太多信息。更好的说法是:No such directory foo in current directory hierarchy或者什么。事实上,这似乎是一个错误情况,当您尝试进行字符串处理时,您应该几乎可以免费获得。但是cd,如果您有权限错误,或者整个树在此期间消失了,或者其他什么,您可能会很好地排除错误。

于 2012-05-29T14:26:38.720 回答