如何在后台仅运行第一个命令?

如何在后台仅运行第一个命令?

我只想发送第一个命令在后台运行。我该怎么做?
例如对于这个命令

sudo apt-get update & && apt-get upgrade

我的第一个命令必须在第二个命令之前运行,如上所示,并且我不想像第一个命令那样运行第二个命令。那么上面的例子就是很好的例子,因为我必须在升级之前运行更新命令。

但它给出了错误(对于我的真实命令也是如此):

bash: syntax error near unexpected token `&&'

答案1

两者都在背景中:

~$ (sleep 1 &) && (sleep 2 &)
~$ 

背景第一

~$ (sleep 1 &) && (sleep 2)
~$ 

但无法与 apt-get 一起工作。

編輯:找到了。

 sudo bash -c 'apt-get update >/dev/null 2>&1 & disown' && sudo apt-get upgrade

证明:

sudo bash -c 'apt-get update >/dev/null 2>&1 & disown' && sudo apt-get upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... The following packages were automatically installed and are no longer required:
  gtk2-engines-pixbuf libcrypt-blowfish-perl libcrypt-cbc-perl
  libcrypt-rijndael-perl libexpect-perl libgnome2-gconf-perl
  libgtk2-ex-simple-list-perl libgtk2-gladexml-perl libgtk2-unique-perl
  libio-stty-perl libkeybinder0 libnet-arp-perl libnet-pcap-perl
  libnet-proxy-perl libossp-uuid-perl libossp-uuid16 libunique-1.0-0
  libxml-parser-perl python-keybinder
Use 'apt-get autoremove' to remove them.
Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

并且更新仍在进行中:

~$ ps -ef|grep apt-get
root      6102  1519  1 12:11 pts/0    00:00:00 apt-get update

但它会破坏顺序:升级将在更新之前完成。

相关内容