linux – nohup多个顺序命令

前端之家收集整理的这篇文章主要介绍了linux – nohup多个顺序命令前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要一个接一个地发出两个命令.第二个命令必须在第一个命令之后执行.以下是命令:
tar -zcf archive.tar.gz.tmp mydir
mv archive.tar.gz.tmp archive.tar.gz

我需要在后台运行命令,但显然不能同时运行.第一个命令完成后,必须运行第二个命令.我试过这个:

nohup tar -zcf archive.tar.gz.tmp mydir ; mv archive.tar.gz.tmp archive.tar.gz > /dev/null 2>&1 &

但命令不在后台运行. bash提示会等到两个命令完成后才给我另一个提示.我需要它们在后台运行.

如果我做:

nohup tar -zcf archive.tar.gz.tmp mydir > /dev/null 2>&1 &

这完全在后台运行.只有当我尝试做多个命令时才会这样.

我也尝试过:

nohup tar -zcf archive.tar.gz.tmp mydir > /dev/null 2>&1 & ; mv archive.tar.gz.tmp archive.tar.gz > /dev/null 2>&1 &

但这也不起作用.语法或其他内容无效.我确定有办法做到这一点,但我只是不确定语法.

我能想到的唯一选择是将命令放入.sh文件和nohup那个文件,但这不一定是我在Linux系统上可以做的事情我必须实现这个(特权限制等).

解决方法

最简单的解决方案:使用创建shell脚本
#/bin/sh
 tar -zcf archive.tar.gz.tmp mydir
 mv archive.tar.gz.tmp archive.tar.gz

并使用nohup myscript.可能还有一些脚本中的额外文档.

(是的,我是文档的傻瓜.特别是当与多个人合作或者有一天你可能会离职时,你的继任者需要找出原因“.)

另一种方法是为子任务启动一个新的shell(在这种情况下你的tar和move)

nohup` $(tar -zcf archive.tar.gz.tmp mydir; mv archive.tar.gz.tmp archive.tar.gz)

备选方案2:

nohup“`tar -zcf archive.tar.gz.tmp mydir; mv archive.tar.gz.tmp archive.tar.gz“`.

我真的很喜欢这个剧本.当你或其他人在几年内查看脚本并且想知道为什么这样做时,它中的注释可能非常有用.

在一个不相关的说明:我怎么发布一个带有反引号的anser? (shell命令’使用此命令;将输出作为输入提供给另一个命令’).

猜你在找的Linux相关文章