Linuxc

两条指令同时执行,前提是第一条指令返回0。否则不执行第二条指令。

root@jiqing-virtual-machine:~/cspace/les3# gcc main.c -o main.out && ./main.out
./main.out
hello world!

可以通过

echo $?

来查看指令是否成功,返回0则成功,返回其他则不成功。

root@jiqing-virtual-machine:~/cspace/les3# gcc main.c -o main.out
root@jiqing-virtual-machine:~/cspace/les3# echo $?
0

我们继续进入main.c文件。修改return的返回值。


#include <stdio.h>

int main(int argc,char *argv[])
{
    printf("%s
",argv[0]);//读取可执行程序(包括路径)

    /*读取参数*/
    int i = 1;
    while(i < argc)
    {
        printf("%s
",argv[i]);
        i++;
    }
    printf("hello world!
");
    return 1;
}

这个时候,执行

root@jiqing-virtual-machine:~/cspace/les3# gcc main.c -o main2.out && ./main2.out && ls
./main2.out
hello world!

ls 指令将不会执行,因为之前的返回值不是0。

重新改为0,再次执行

root@jiqing-virtual-machine:~/cspace/les3# gcc main.c -o main.out && ./main.out && ls
./main.out
hello world!
main2.out  main.c  main.out

再看隐藏的参数作用。

root@jiqing-virtual-machine:~/cspace/les3# ./main.out -l -a
./main.out
-l
-a
hello world!

原文地址:https://www.cnblogs.com/jiqing9006/p/8335599.html