君正X系列开发3---shell编程

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衍生的任何子进程的环境变量。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dwyane05

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值