首页 > 解决方案 > 如何从任何文件夹运行我的 bash 脚本

问题描述

我正在尝试从另一个文件夹运行我的 bash 脚本,我希望它从我想要的文件夹中执行

我应该怎么办 ?

我试图在一开始就使用 find 但它不起作用!

find /path/to/Files -type d -exec Notes-Khaled-Mustafa.sh {} \;

标签: bash

解决方案


./Notes-Khaled-Mustafa.sh {}只需将当前文件夹路径作为脚本的参数。
这不是你想要的。find您希望使用您通过命令列出的文件夹作为其当前执行文件夹来执行您的脚本。

这是通过调用 subshel​​l 并在其中执行 a 来完成的cd

在您的 bash 会话中,请尝试:

find . -type d -execdir /path/to/Note-khaled-mustafa.sh \;

所以不是“ ./Note-khaled-mustafa.sh”,而是“ /absolute/full/path/to/Note-khaled-mustafa.sh

这用于-execdir目录更改为每个匹配的路径。如果您的版本find没有-execdir,请改用:

 find . -type d -exec sh -c 'cd "$1" && /path/to/Note-khaled-mustafa.sh' sh {} \; 

推荐阅读