Loading...
君正X系列开发3---shell编程
夜墨11111 发布于 07/28 11:05 浏览 58

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衍生的任何子进程的环境变量。

原文链接:https://blog.csdn.net/cyf15238622067/article/details/76223973

*本文仅代表作者观点,不代表易百纳技术社区立场。系作者授权易百纳技术社区发表,未经许可不得转载。

点赞0
收藏0
分享

精彩评论

内容存在敏感词
确定要删除此文章、专栏、评论吗?
确定
取消

详细的问题描述有助于平台快速解决问题

屏幕截图
问题描述