从 shell 文件运行可执行 shell 文件

从 shell 文件运行可执行 shell 文件

我正在做一个项目,用户运行一个 .sh 文件,然后该文件将运行一个可执行的 .sh 文件。

该文件名为 wifi.sh,其中是 Fluxion.sh 的文件位置,但是当它运行时,它不会运行 Fluxion 程序。我怎样才能让它发挥作用。

答案1

这稍微取决于您计划在哪个上下文中运行fluxion以及该工具终止后会发生什么。

选项一:exec

特点:不返回、节省流程

wifi.sh:

#!/bin/sh
PATHTOFLUXION=/usr/local/bin/fluxion
exec $PATHTOFLUXION
echo this code is never reached

选项二:直接打电话

特点:确实返回,最大程度的简单

wifi.sh:

#!/bin/sh
PATHTOFLUXION=/usr/local/bin/fluxion
$PATHTOFLUXION
echo "I just returned from $PATHTOFLUXION"

选项三:source

特点:如果被调用的工具又是一个 shell 脚本,该脚本还设置了您想要在工具退出后访问的变量,那么这些变量将被保留。

#!/bin/sh
PATHTOFLUXION=/usr/local/bin/fluxion
source $PATHTOFLUXION
echo "$PATHTOFLUXION was a shellscript and set $DATAFROMFLUX"

相关内容