linux - 拒绝脚本中的函数?

标签 linux bash macos shell

<分区>

我不确定这是否真的可行,但也许有人对我如何做类似的事情有一些建议:

#!/bin/bash

dissed() {
    for i in {1..10}
    do
        sleep 5
        echo "$(date)"
    done
}

/usr/bin/screen -S disowned -d -m dissed & disown -h; 

screen -ls

echo "done."

当然这是行不通的,因为我假设函数在脚本结束时被终止。我知道当我替换调用“dissed”函数的实际 .sh 文件时它会起作用,但这是我想避免的。

有什么方法可以否认位于父级中的函数或下标吗?

最佳答案

从 bash 脚本中分离进程:

nohup ./process & 例如,如果您使用 SIGINT 停止您的 bash 脚本,该过程将不会受到打扰并将继续正常执行。 stdout & stderr 将被重定向到一个文件:nohup.out。

如果你希望在终端中看到输出的同时执行一个分离的命令,那么使用tail:

TEMP_LOG_FILE=tmp.log

"$TEMP_LOG_FILE" nohup ./process &> "$TEMP_LOG_FILE" & tail -f "$TEMP_LOG_FILE" &

关于linux - 拒绝脚本中的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47350666/

相关文章:

c++ - Linux拒绝使用boost asio对套接字绑定(bind)的权限

Linux:找出最近更新的前 10 个文件/文件夹

bash - 使用 shell 脚本重命名文件

linux - 仅回显有效用户

linux - sed - 将匹配传递给外部命令

c++ - 必须重新定义一些 kext 成员函数,以避免未解析的符号

html - 自定义滚动条,类似于 MacOS 上的默认滚动条

linux - linux下哪个信号可以用来临时挂起进程

java - Jenv - 多次添加相同的 Java 版本

linux - pdftops eps 字体问题