Linux shell 创建后台进程 -- ls & 不返回提示符,需要按下 Enter

标签 linux shell process background ls

我正在学习在 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/

相关文章:

bash - 在 bash 中将 $1 与另一个字符串进行比较

linux - 使用带有 git Hook 的脚本时找不到文件或目录

linux - Ejabberd 将在线用户数限制为 64,464。描述符已经增加

android - 不同应用程序调用时 "Generating New Processes"出现问题?

c - 当进程的控制 shell 被杀死时优雅地终止进程

linux - 获取有关 ELF 文件的更多信息

linux - 如何配置 gdb 加载符号?

linux - 通过 SSH 访问远程 Git 存储库时使用 su/sudo

shell - 将带后缀的文件大小转换为字节的最简单方法

c# - 如何在一段时间后强行关闭c#中的进程?