这条命令本身是有问题的,可分开执行验证。
ifconfig -a | awk ifconfig 输出就是空
ifconfig -a | awk ifconfig | awk '{print $1 }' | grep eth0 输出肯定是空
按照你的表述,应该下面这条命令可以搞定:
ifconfig -a|awk /eth0/|awk '{print $1}'
或
ifconfig -a | awk '/eth0/ {print $1}'
如果ifcfg-eth0文件中没有GATEWAY这一项,echo$a
显示为空。
不满足 /^GATEWAY/
条件就不会打印任何东西。
加个判断即可。
a="`awk -F= '/^GATEWAY/{print $2}' /etc/sysconfig/network-scripts/ifcfg-eth0`"
if [ -n "$a" ]then #变量a不为空(文件中存在GATEWAY这项)
# Do sth.
else #变量a为空(文件中不存在GATEWAY这项)
# Do sth. else
fi
c语言中定义一个结构体,其变量在编译时就确定好了。而且,编译后,变量的名称就不存在了,换成了相应的内存地址信息。所以,在运行时,再去检查某个变量是否存在,是不合理的 *** 作,系统是不支持的。
可以做的工作是:检测结构体中的变量的值是否为0。如:
#include <stdio.h>#include <string.h>
struct data {
int num
char name[11]
int age
} student
void main()
{
memset( &student, 0, sizeof(student) ) //清理结构体内容为0
if ( student.num==0 ) //如果没有数据,则录入数据
{
printf("input stu_num: ")scanf("%d", &student.num )
printf("input stu_name: ")scanf("%s", student.name )
printf("input stu_age: ")scanf("%d", &student.age )
}
}
代码没有实际意义,只在说明问题。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)