我正在做一个项目,用户运行一个 .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"