linux 判断输出为空的问题

linux 判断输出为空的问题,第1张

ifconfig -a | awk ifconfig | awk '{print $1 }' | grep eth0

这条命令本身是有问题的,可分开执行验证。

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 )

    }

}

代码没有实际意义,只在说明问题。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/7353237.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存