shell可以实现输入,输出重定向,< > 使用管道 | 在同时执行的程序间传递数据 使用$(…)获取子进程的输出
管道可以实现两个进程之间的通讯,并且可以协调相互运行。
检查脚本是否是脚本程序:file name cui@cui-vir:~/tmp/shell$ file first first: POSIX shell script, ASCII text executable
编写第一个shell脚本
#!/bin/sh for file in * do if grep -q POSIX $file then echo $file fi done exit 0添加可执行权限,chmod +x first
然后在当前目录执行./first 添加./是一个好习惯
shell对大小写敏感:foo Foo FOO是不同的在shell中我们可以通过在变量名前添加$符号访问他的内容;无论何时想要获取变量内容,都应该在它前面添加$;$salution=”Yes Dear”$echo $salution注意,如果字符串包含空格,就必须使用引号将他们括起来,还要注意等号两边不能有空格
引号的使用: 一般情况下,脚本文件中的参数以空白字符分隔,如果想在一个参数中包含一个或多个空白字符, 必须给参数加上引号。
单引号不会发生替换现象,字符串一般放在双引号中,以防止他们被空白字符分开,但允许扩展$.
#!/bin/sh myvar=”Hello there” echo $myvar echo “$myvar” echo $myvar echo \$myvar echo Enter some text read myvar echo $myvar now equals $myvar exit 0 cui@cui-vir:~/tmp/shell$ ./myvar Hello there Hello there $myvar $myvar Enter some text Hello World $myvar now equals Hello World参数 $0 shell脚本的名字 $# 传递给脚本的参数个数 $$ shell脚本的进程号 $@ IFS为空时,参数值不会结合在一起,而$*会结合在一起 $1,$2… 脚本的参数
[ 或test 命令
请记住:shell脚本程序中的变量扩展都是在脚本程序被执行的时而不是编写时完成的。 所以,变量声明中的语法错误只有在执行是才会发现。
$(command)的用法:
if [ ];then statements elif [ ];then statements else statements fi for val in val_list do statements done while condition do statements done case varible in pattern [ | pattern ]…)statements;; pattern [ | pattern ]…)statements;; pattern [ | pattern ]…)statements;; esac && || 函数: function (){ statements }export 被导出的变量构成从该shell衍生的任何子进程的环境变量。
君正X系列开发2—添加rz,sz命令 君正T31 配置Uboot 启动命令 君正X系列开发1—系统编译原文链接:https://blog.csdn.net/cyf15238622067/article/details/76223973
免责声明:文章内容来自互联网,本站不对其真实性负责,也不承担任何法律责任,如有侵权等情况,请与本站联系删除。
转载请注明出处:君正X系列开发3—shell编程 https://www.yhzz.com.cn/a/15436.html