./why_linuxlinux
if [ "$?" != "0" ]; then echo "Error run Environment" exit 1 fi
咱们的系统都有一个shell
Expands to the status of the most recently executed foreground pipeline.ide
扩展到最后执行的前台状态管道函数
也说就是ui
我C语言main有一个returncode
shell 也有一个 exit ip
脚本中的 $? 就是上一次脚本调用的return或是exit 的返回值字符串
好比
若是你的程序itwhylinux.cpip
#include <stdio.h> int main(int argc,char *argv[]) { printf("\nDemo\n"); return 0; }
这里return的是0
那么
gcc whylinux.c -o whylinux
上面的脚本不会出错提示了
判断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文件中
一、能够带function fun() 定义,也能够直接fun() 定义,不带任何参数。
二、参数返回,能够显示加:return 返回,若是不加,将以最后一条命令运行结果,做为返回值。 return后跟数值n(0-255
实例
__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,函数返回值是函数最后一行命令的执行结果
实例
ConfigZip=${MAC}".zip"
MAC是一个变量值,若是想要在这个变量值后面链接其余字符串,则用{}将该变量值括起来,代表该变量是要进行字符串链接的。
update.txt文件中若是有ok字符串,则$?等于0
实例
ST1="12345678912345678900000000"
ConfigZip=${ST1:18:8}".zip"
echo "$ConfigZip"
${ST1:18:8}意思是截取ST1这个字符串的第18个字符后的8个字符串,截取后echo输出的字符串为00000000
实例
ConfigZip=$(cat /private_config.dat)
StrLength=${#ConfigZip}
第一行获取private_config.dat文件中的字符串到ConfigZip变量中,第二行获取ConfigZip字符串的长度
实例
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后的位置到结束的字符串内容。
实例
if (ls $ConfigZip > /dev/null 2>&1)
0:表示键盘输入(stdin)1:表示标准输出(stdout),系统默认是1 2:表示错误输出(stderr)'>':表示重定向到哪里 /dev/null:表示Linux的空设备文件 2:表示标准错误输出&1:&表示等同于的意思,2>&1,表示2的输出重定向等于于11>/dev/null:表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,不显示任何信息。2>&1:表示标准错误输出重定向等同于标准输出,由于以前标准输出已经重定向到了空设备文件,因此标准错误输出也重定向到空设备文件。这条命令的意思就是在后台执行这个程序,并将错误输出2重定向到标准输出1,而后将标准输出1所有放到/dev/null文件,也就是清空.因此能够看出" >/dev/null 2>&1 "经常使用来避免shell命令或者程序等运行中有内容输出。