1.if [ $? -ne 0 ]
./why_linux
if [ "$?" != "0" ]; then
echo "Error run Environment"
exit 1
fi
我们的系统都有一个
Expands to the status of the most recently executed foreground pipeline.
扩展到最后执行的前台状态管道
也说就是
我C语言main有一个return
shell 也有一个 exit
脚本中的 $? 就是上一次脚本调用的return或是exit 的返回值
>比如
如果你的程序
>whylinux.c
#include <stdio.h>
int main(int argc,char *argv[])
{
printf("\nDemo\n");
return 0;
}
>这里return的是0
那么
gcc whylinux.c -o whylinux
上面的脚本不会出错提示了
2.if [ -f "xxx.xx" ]
判断xxx.xx是否存在 存在则执行下面的指令
如
if [ -f "$U_Mount_Dir$Update_File" ]; then
echo "Exit Update_File $Update_File" >> /mdev.txt
fi
如果$U_Mount_Dir$Update_File存在,则输出信息到/mdev.txt文件中
3.Shell脚本函数
定义函数
[ function ] funname [()]
{
action;
[return int;]
}
说明
1、可以带function fun() 定义,也可以直接fun() 定义,不带任何参数。
2、参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值。 return后跟数值n(0-255
4.Shell获取ini文件内容
实例
__readINI() {
INIFILE=$1; SECTION=$2; ITEM=$3
_readIni=awk -F '=' '/\['$SECTION'\]/{a=1}a==1&&$1~/'$ITEM'/{print $2;exit}' $INIFILE
echo ${_readIni}
}
MAC=$(__readINI /mnt/yaffs2/publicgateway/private.ini privateinfo equiment_mac)
说明
参数 ini文件名,组名,键名
没有return,函数返回值是函数最后一行命令的执行结果
5.Shell字符串连接
实例
ConfigZip=${MAC}".zip"
说明
MAC是一个变量值,如果想要在这个变量值后面连接其他字符串,则用{}将该变量值括起来,表明该变量是要进行字符串连接的。
6. Shell判断一个文件中是否有指定的字符串
实例
grep -q "ok" /update.txt
if [ $? -eq 0 ]; then
sync
reboot -f
fi
说明
update.txt文件中如果有ok字符串,则$?等于0
7.Shell截取一个字符串的指定位置到指定位置的内容
实例
ST1="12345678912345678900000000"
ConfigZip=${ST1:18:8}".zip"
echo "$ConfigZip"
说明
${ST1:18:8}意思是截取ST1这个字符串的第18个字符后的8个字符串,截取后echo输出的字符串为00000000
8.Shell获取字符串长度
实例
ConfigZip=$(cat /private_config.dat)
StrLength=${#ConfigZip}
说明
第一行获取private_config.dat文件中的字符串到ConfigZip变量中,第二行获取ConfigZip字符串的长度
9.Shell变量运算
实例
ConfigZip=$(cat /private_config.dat)
StrLength=${#ConfigZip}
echo $(($StrLength-8)) >> /mdev.txt
echo ${ConfigZip:$(($StrLength-8))} >> /mdev.txt
说明
第一行获取private_config.dat中字符串的内容,第二行获取其字符串长度,第三行算出StrLength字符串长度-8后 的长度,第四行输出ConfigZip这个字符串的长度-8后的位置到结束的字符串内容。
10.Linux中的/dev/null 2 > &1
实例
if (ls $ConfigZip > /dev/null 2>&1)
说明
0:表示键盘输入(stdin)
1:表示标准输出(stdout),系统默认是1
2:表示错误输出(stderr)
'>':表示重定向到哪里
/dev/null:表示Linux的空设备文件
2:表示标准错误输出
&1:&表示等同于的意思,2>&1,表示2的输出重定向等于于1
1>/dev/null:表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,不显示任何信息。
2>&1:表示标准错误输出重定向等同于标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。
这条命令的意思就是在后台执行这个程序,并将错误输出2重定向到标准输出1,然后将标准输出1全部放到/dev/null文件,也就是清空.
所以可以看出" >/dev/null 2>&1 "常用来避免shell命令或者程序等运行中有内容输出。
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com