我正在学习在 Linux(或 MacOS)shell 中创建后台进程。大多数命令按预期运行 - 它们在运行命令 $<command> &
后返回提示符,例如$top &
, $man ls &
等
但是,我在使用 ls 命令时遇到问题:执行 $ls &
不像其他人那样立即返回提示符,但它要求我按 Enter 键才能返回提示符。
我该如何解释这一点?谢谢。
最佳答案
我猜你会看到类似的东西
$ ls &
[1] 23682
$ bin/ dev/ home/ initrd.img.old@ lib32/ lost+found/ mnt/ proc/ run/ selinux/ sys/ usr@ vmlinuz@
boot/ etc/ initrd.img@ lib/ lib64/ media/ opt/ root/ sbin/ srv/ tmp/ var/ vmlinuz.old@
此时,ls
已经返回。注意第三行的$
,这是我的shell的提示符。因为你把ls
放在后台运行,它的一些输出被shell放到了shell提示符之后,这使得ls
看起来像是没有返回。
关于Linux shell 创建后台进程 -- ls & 不返回提示符,需要按下 Enter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22602746/