
tar -zcf archive.tar.gz.tmp mydirmv 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 – nohup多个顺序命令全部内容,希望文章能够帮你解决linux – nohup多个顺序命令所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)