实习日记(6-9)

小记

笔记

今天搞了一下cgi中对于json的修改和删除

        //修改
        char * json_str=NULL;
        cJSON * root=cJSON_Parse(result);
        //修改属性
        //  修改数值
        cJSON_GetObjectItem(root,"speed")->valueint = 12;
        cJSON_GetObjectItem(root,"speed")->valuedouble = 12;
        //  修改字符
        cJSON_GetObjectItem(root,"parity")->valuestring="Z";
        //  修改数组
        cJSON * devices = cJSON_GetObjectItem(root,"devices");
        cJSON_GetArrayItem(devices,0)->valuestring="123.json";
        //	从数组中删除
        cJSON_DeleteItemFromArray(devices,1);
        printf("\n-------edited------\n");
        json_str=cJSON_Print(root);
        printf("%s",json_str);
        printf("-----------------\n");
        
        //让json中重写
        FILE * fedit;
        fedit=fopen("test.json","w");
            fputs(json_str,fedit);
        fclose(fedit);

学了会儿shell

基本变量的使用
#!/bin/bash
name="zhangsan"
sex="nan"
readonly name   #readonly 只读
unset sex       #unset  删除
echo ${name}-${sex}

#拼接字符串
pinjie="hello, ${name} !"
echo $pinjie $name

#获取字符串长度
length="123456789"
echo ${#length}

#提取字符串
echo ${length:1:4}

#数组
array_name=(
value0
value1
value2
value3
)

echo ${array_name[0]}
#获取数组长度
array_length=${#array_name[*]}
#获取单个数组元素的长度
item_length=${#array_name[1]}
echo "array_length" $array_length "item_length" $item_length

#多行注释
:<<!
注释内容...
注释内容...
注释内容...
!

实习日记(6-9)_第1张图片

有关参数的处理
#!/bin/bash
echo "first $1"
echo "second $2"
echo "num $#"
echo "process num $$"

echo ---------------
for i in "$*";do
    echo $i
done
echo ---------------
for i in "$@";do
    echo $i
done

实习日记(6-9)_第2张图片$* 与 $@ 区别:

  • 相同点:都是引用所有参数
  • 不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数 1、2、3,,则 " * " 等价于 “1 2 3”(传递了一个参数),而 “@” 等价于 “1” “2” “3”(传递了三个参数)
有关运算符
算数运算符

加减乘除取余赋值相等不相等,不再罗列
上个例子

#表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2,这与我们熟悉的大多数编程语言不一样。
sum=`expr 2 + 2`
echo $sum

在这里插入图片描述

关系运算符

实习日记(6-9)_第3张图片
实习日记(6-9)_第4张图片
实习日记(6-9)_第5张图片

  • -eq 就是 ==
  • -ne 就是 !=
  • -gt 就是 >
  • -lt 就是 <
  • -ge 就是 >=
  • -le 就是 <=
  • l 就是 !
  • -o 就是 ||或运算
  • -a 就是 &&与运算

上个例子

f [ $a -eq $b ]
then
    echo "$a -eq $b : a eq b"
else
    echo "$a -eq $b : a noteq b"
fi

#这个if的写法也怪怪的

if [ $a -lt 20 -o $b -gt 100 ]
then 
    echo "a100   suc"
else
    echo "a100   fail"
fi

输出
在这里插入图片描述

字符串运算符

实习日记(6-9)_第6张图片

文件测试运算符

实习日记(6-9)_第7张图片

file="/usr/"
if [ -d $file ]
then
    echo "yes"
else
    echo "no file"
fi

输出yes
-------------------------------分割线--------------------------------------

下面搞一下SNMP

这里有一篇博客参考:
https://blog.csdn.net/shanzhizi/article/details/11606767
这一篇老详细了:
https://www.cnblogs.com/xdp-gacl/p/3978825.html

SNMP协议是啥?

简单网络管理协议(SNMP)是TCP/IP协议簇的一个应用层协议。

一套完整的SNMP系统主要包括管理信息库(MIB)、管理信息结构(SMI)及SNMP报文协议。

SNMP是干嘛的,在应用层中起什么作用

简单网络管理协议,管理和监控网络设备(路由器的功能)

你可能感兴趣的:(实习日记(6-9))