君正X系列开发3---shell编程
1875
夜墨11111 2020-07-28 11:05:08

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 条记录 第 0 /
    相关专栏
    置顶时间设置
    结束时间
    删除原因
    • 广告/SPAM
    • 恶意灌水
    • 违规内容
    • 文不对题
    • 重复发帖
    打赏作者
    易百纳技术社区
    夜墨11111
    您的支持将鼓励我继续创作!
    打赏金额:
    ¥1 易百纳技术社区
    ¥5 易百纳技术社区
    ¥10 易百纳技术社区
    ¥50 易百纳技术社区
    ¥100 易百纳技术社区
    支付方式:
    微信支付
    支付宝支付
    易百纳技术社区 微信支付
    易百纳技术社区
    打赏成功!

    感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

    举报反馈

    举报类型

    • 内容涉黄/赌/毒
    • 内容侵权/抄袭
    • 政治相关
    • 涉嫌广告
    • 侮辱谩骂
    • 其他

    详细说明

    审核成功

    发布时间设置
    发布时间:
    是否关联周任务-专栏模块

    审核失败

    失败原因
    备注
    Loading...
    易百纳技术社区
    确定要删除此文章、专栏、评论吗?
    确定
    取消
    易百纳技术社区
    每周任务
      去完成
      活动规则
      易百纳技术社区
      升级提醒
      升级

      恭喜您的社区称号由 升级为 “社区游民”

      同时为了感谢您对社区的支持,我们将送出xxx礼品一份, 记得领取哦~

      升级提醒
      易百纳技术社区

      惊喜礼包

      拼手气红包 红包规则
      祝福语
      恭喜发财,大吉大利!
      红包金额
      红包最小金额不能低于5元
      红包数量
      红包数量范围10~50个
      余额支付
      当前余额:
      可前往问答、专栏板块获取收益 去获取
      取 消 确 定

      小包子的红包

      恭喜发财,大吉大利

      已领取20/40,共1.6元 红包规则

        avatar