linux - && vs & with the test command in bash -
gndlp@ubuntu:~$ test -x examples.desktop && echo $? gndlp@ubuntu:~$ test -x examples.desktop & echo $? [1] 2992 0
why bash acting way in situation? test command not finishing , echo command isn't processed?
the meaning of &&
, &
intrinsically different.
&&
in bash
? in bash
—and many other programming languages—&&
means “and”. , in command execution context this, means items left right of &&
should run in sequence in case. what &
in bash
? , single &
means preceding commands—to immediate left of &
—should run in background. so looking @ example:
gndlp@ubuntu:~$ test -x examples.desktop && echo $? gndlp@ubuntu:~$ test -x examples.desktop & echo $? [1] 2992 0
the first command—as structured—actually not homecoming anything. sec command returns [1] 2992
in 2992
refers process id (pid) running in background , 0
output of first command.
since sec command running test -x examples.desktop
in background happens quite process id spawned , gone pretty immediately.
linux bash
No comments:
Post a Comment