现在的位置: 首页 > 综合 > 正文

使用system调用shell脚本时的返回值的使用

2014年01月11日 ⁄ 综合 ⁄ 共 819字 ⁄ 字号 评论关闭

1. 创建一个脚本a,内容如下:

  1. #!/bin/sh
  2.   #filename: a
  3.   exit 22

  2. 创建一个c语言程序1.C,调用该脚本,通过system的返回值来判断是否执行脚本成功.

  1. #include <stdio.h>
  2.    #include <stdlib.h>
  3.    #include <iostream.h>
  4.    int main()
  5.   {
  6.         int nRes = system("a");
  7.         nRes = nRes >> 8;
  8.         cout<<nRes<<endl;
  9.        return 1;
  10.   }

  通过: g++ -o test 1.C得到可执行文件:test.

  执行:./text后得到的结果就是: 22.

3. 修改脚本a,在a中实现文件拷贝的功能,如果拷贝不成功,则出现一个自定义的提示.

  1.   #!/bin/sh
  2.    #filename: a
  3.    if cp 1.C 2.C > /dev/null 2>
  4.    then 
  5.        echo "cp succeed !";
  6.    else  
  7.        echo "`basename $0`: cp not succeed !";
  8.    fi

   执行text,得到的结果为:
   cp succeed !
   0
 
   如果要拷贝的文件为3.C,该文件是一个不存在的文件,如下所示:

  1.   #!/bin/sh
  2.    #filename: a
  3.    if cp 3.C 2.C > /dev/null 2>
  4.    then 
  5.        echo "cp succeed !";
  6.    else  
  7.        echo "`basename $0`: cp not succeed !";
  8.        exit 1;
  9.    fi

  那么执行./test后得到的结果就是:
  a: cp not succeed !
  1

 

  通过上面的操作我们知道了if在测试返回值的时候: 0表示真;1表示假.

抱歉!评论已关闭.