1.echo $? 什么意思?
查到的内容如下:
内部参数
上述过程中的$0是一个内部变量,它是必须的,代表程序本身,而$1则可有可无。和$0一样的内部变量还有以下几个。
$# ----传递给程序的总的参数数目
$? ----上一个代码或者shell程序在shell中退出的情况,如果正常退出则返回0,反之为非0值。
$* ----传递给程序的所有参数组成的字符串。
$- ----在Shell启动或使用set命令时提供选项
$? ----上一条命令执行后返回的值
$$ ----当前shell的进程号
$! ----上一个子进程的进程号
$@ ----所有的参数,每个都用双括号括起
$n ----位置参数值,n表示位置
$0 ----当前shell名
http://www.2cto.com/os/201201/116509.html
2 unexpected operator
解决方法就是:
(1) : sudo dpkg-reconfigure dash 选NO
将ubuntu 默认的shell 链接的dash 改成传统的 bash
lrwxrwxrwx 1 root root 4 8月 11 09:53 /bin/sh -> dash (为修改之前)
lrwxrwxrwx 1 root root 4 8月 11 09:53 /bin/sh -> bash
由于dash 和bash 不兼容才导致了此类问题的发生。。
(2):将==改成= :因为在dash 中默认的 判断语句是=。。
对于具体的dash 和bash 都可以使用man 查到。。
你还可以查阅:
http://www.51testing.com/html/38/225738-208702.html
3:警告: 隐式声明与内建函数 ‘printf’ 不兼容 解决方法.
$ gcc process41.c
process41.c: 在函数 ‘main’ 中:
process41.c:17: 警告: 隐式声明与内建函数 ‘exit’ 不兼容
process41.c:19: 警告: 隐式声明与内建函数 ‘sprintf’ 不兼容
process41.c:32: 警告: 隐式声明与内建函数 ‘exit’ 不兼容
process41.c: 在函数 ‘func’ 中:
process41.c:36: 警告: 隐式声明与内建函数 ‘printf’ 不兼容
加入这两个头文件就可以了!
#include <stdio.h>
#include <stdlib.h>
http://hi.baidu.com/sunsocool/item/fd5854f4e122770cc7dc4555