unix 使子进程的shell命令在父进程中执行(锁定shell)

ac1kyiln  于 2023-10-18  发布在  Unix
关注(0)|答案(2)|浏览(136)

我有一个用户定义的命令,名为lock。执行命令后,系统将被锁定。如果我们只给予正确的密码,那么只会出现命令提示符。现在,我想从后台运行的脚本中执行lock命令。如果我们执行脚本lock命令被执行,但它不锁定当前终端.它只锁定后台bash。它不会在当前的bash中执行。如何解决这一问题?
谢谢.

5sxhfpxr

5sxhfpxr1#

您可以使用DEBUG陷阱在命令提示符下执行命令之前执行命令:

trap 'command' DEBUG

这将在每个命令之前执行命令。当系统被锁定时,更改你的后台脚本来创建一个标志文件。并让您的命令检查该文件是否存在。就像这样:

if [[ -f lockfile ]]
then p=
    while [[ "$p" != secret ]]
    do  echo -n password: 
        read p
    done
    rm -f lockfile
fi

我不是说它是安全的。
另一种方法:
发射两枚炮弹下面的shell循环请求密码,然后运行上面的shell。上壳是正常的壳。当后台任务想要锁定终端时,它会杀死上层shell,将控制权返回给下层shell。

z9smfwbn

z9smfwbn2#

我今天有点事。为了解决这个问题,我不得不把剧本的来源。
解决方案很简单source <script>

相关问题