Linux-如何从另一个文件夹访问/执行文件而不更改文件夹

Linux-如何从另一个文件夹访问/执行文件而不更改文件夹,linux,bash,Linux,Bash,我尝试了多种方案,但这些方案更像是一个难题。我试着写这个bash也是为了同样的目的,但是需要在我需要执行的同一个文件中进行更改。有人能帮我做同样的事吗 #!/bin/bash -p if [ $# -lt 1 ]; then echo "No arguments provided" exit 0 fi CURRENT_DIR=`pwd` EXEC_DIR=`dirname "$1"` FILENAME="`basename $1`" cd $EXEC_DIR CMD="./$FI

我尝试了多种方案,但这些方案更像是一个难题。我试着写这个bash也是为了同样的目的,但是需要在我需要执行的同一个文件中进行更改。有人能帮我做同样的事吗

#!/bin/bash -p
if [ $# -lt 1 ]; then
    echo "No arguments provided"
    exit 0
fi
CURRENT_DIR=`pwd`
EXEC_DIR=`dirname "$1"`
FILENAME="`basename $1`"
cd $EXEC_DIR
CMD="./$FILENAME ${@:2}"
$CMD
cd $CURRENT_DIR

我需要一些两行程序来处理我需要执行的同一个文件

如果您的脚本在/opt/中,并且您在/opt/dir/中,则您只能从那里运行脚本,如下所示-->../script.sh它将从上一个文件夹运行脚本,并在当前文件夹中运行脚本

最简单的方法是使用要执行的文件/脚本的完整路径:

/path/to/file/example.bash

您将保留在当前目录中,但您的脚本
example.bash
将被执行。

是否使用子shell更改目录并执行程序?类似于
(cd$EXEC_DIR;/$FILENAME${@:2})
?这将导致子shell在新目录中执行程序,但您的脚本仍将在不更改目录的情况下继续。此外,您能否详细说明您所显示的脚本存在的问题?它有什么问题?不清楚,为什么不简单地
“$1”${@:2}
来执行文件,假设文件名附带了一个绝对路径。如果您不想永久更改为
EXEC\u DIR
,则始终可以使用
pushd
popd
(与使用
cd
的方式相同,但不需要指定返回目录。我知道直接提供路径可以从任何文件夹执行脚本。但是如果(.)中引用了另一个本地文件。)如何解决这个问题。我在脚本中通过“.”当前目录解决了一些其他本地依赖项。我还得到了解决方案:我必须更改邮件本身,而不是编写此脚本。EXEC_DIR=
dirname“$0”
cd$EXEC\u DIRThink before answer.。我知道直接给出一个路径可以从任何文件夹执行脚本。但是如果(.)这将如何解决。我在脚本中有一些其他本地依赖项通过“.”当前目录解决。我也得到了答案。我需要更改脚本本身,而不是编写新脚本。EXEC_DIR=
dirname“$0”
cd$EXEC_DIR