bash - GCC, what does -&& mean on the command line? -
i execute command this
echo 'int main(){printf("%lu\n",sizeof(void));}' | gcc -xc  -w -&& ./a.out   and can result :1. can not find out -&& means,even after search man page , google!.and try execute without -&& option.it error this:
./a.out:1: error: stray ‘\317’ in program ./a.out:1: error: stray ‘\372’ in program ./a.out:1: error: stray ‘\355’ in program ./a.out:1: error: stray ‘\376’ in program ./a.out:1: error: stray ‘\7’ in program ./a.out:1: error: stray ‘\1’ in program ./a.out:1: error: stray ‘\3’ in program ./a.out:1: error: stray ‘\200’ in program ./a.out:1: error: stray ‘\2’ in program ./a.out:1: error: stray ‘\16’ in program ./a.out:1: error: expected identifier or ‘(’ before numeric constant ./a.out:1: error: stray ‘\6’ in program ./a.out:1: error: stray ‘\205’ in program ./a.out:1: error: stray ‘\31’ in program ./a.out:1: error: stray ‘\1’ in program ./a.out:1: error: stray ‘\31’ in program ./a.out:1: error: stray ‘\2’ in program   ......
who knows option means?
-&& interpreted shell not single token, 2 separate tokens: - , &&. - token has no special meaning shell , passed argument gcc, interprets instruction read source standard input. && shell operator connects 2 commands in and clause: a && b execute b (a.out) if a (echo ... | gcc ...) has finished successfully.
the point of using gcc ... && ./a.out instead of simpler gcc ...; ./a.out run a.out if compilation has been successful, preventing stale a.out being executed.
Comments
Post a Comment