从脚本中删除一个函数?

时间:2017-11-17 12:28:00

标签: 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."

当然这不起作用,因为我假设当脚本结束时函数被杀死。我知道当我替换一个实际的.sh文件时会调用“dissed”函数,但这是我想要避免的。

是否有某种方法可以取消位于父级中的函数或下标?

1 个答案:

答案 0 :(得分:0)

从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" &安培;