如果允许我们创建帮助程序脚本,则可以创建一个将pwd添加到PATH的帮助程序,然后运行
. pathhelper #adds pwd to path
file #now it can be run without ./
这样可以避免添加“。” 到该路径,并在某处可能想要在其中运行的每条路径污染您的.profile。
我们可以使该方法更进一步,方法是创建一个辅助程序,该辅助程序将使用经过修改的PATH启动新的Shell。如果使用目录作为参数(默认使用pwd),则其功能类似于pushd
编辑路径的a。您可能需要注意,退出子Shell时对其他环境变量的任何更改都将丢失,但是在长时间运行的Shell中,您的PATH变量不会杂乱无章。根据您的工作流程,这可能是有利的。
:outer shell prompt$; subshellpathhelper # launches a subshell with modified PATH
: subshell prompt $ ; file # in the subshell it can be run without ./
但是我想,如果您想运行它,您可能会破解pushd
,popd
因此他们可以对路径进行相同的修改,而无需创建子shell,否则将丢失其他更改。
pushd --path ~/some/path/ # normal pushd plus adds target to path
file # it can be run without ./ until you popd
(您不能这样做,cd
因为它没有的类似物popd
。)
您还可以创建一对专门的助手来仅推送和弹出PATH条目。最有效的方法实际上取决于您的使用模式。