【发布时间】:2018-07-11 04:15:39
【问题描述】:
我编写这个脚本是为了能够快速转到 ls 输出中的第 n:th 目录:
#!/usr/bin/env bash
# cd to the nth directory in a list as produced by ls
cd $( ls | head -n$1 | tail -n1 )
我将它命名为 cde 并使其可执行(它在我的 $PATH 中)所以现在我可以使用了
. cde 3
例如更改到 3:rd 目录(即我来源它)。由于 bash 如何为脚本创建子shell,我不能像这样执行它
cde 3
因为只有子shell的目录受到影响。
您将如何做才能摆脱编写额外的点并仍然获得所需的行为?
我会为此使用别名而不是脚本,但我不知道如何将参数传递给别名。
【问题讨论】:
-
“因为只有子shell的目录受到影响”您能否在答案中添加更多详细信息?
-
添加了一个关于子外壳与交互式外壳的句子(或者在这种情况下将其称为“父外壳”或其他名称更好?)。那是你想要的,还是有别的?
标签: linux bash function alias subshell