作家
登录

编写快速安全Bash脚本的建议

作者: 来源: 2017-04-14 09:17:15 阅读 我要评论

还有一个额外的最后一件关于 if 的事:我今天学到是不须要经由过程[[或者[去应用 if 语句:任何有效的敕令都邑工作。 所以你可以如许做

if grep peanuts food-list.txtthenecho "allergy allert!"fi

函数不是那么难

在 bash 中定义和调用函数(特别是没有参数)是异常轻易的。

my_function () { echo "This is a function"; }my_function #调用函数

老是引用你的变量

X="i am awesome"Y="i are awesome"if [ $X = $Y ]; then echo awesomefi

Bash 解释这个 if 语句为 if [ i am awesome == i are awesome],这是6个字符串 (i, am, awesome, i, are, awesome) 无意义的 if 语句。 精确的写法是

X="i am awesome"Y="i are awesome"if [ "$X" = "$Y" ]; then #我放置引号因为我知道bash会反叛我,如不雅我不放的话 echo awesomefi

有些情况下,只要应用 $ X 而不是 “$ X” 就可以,然则您可以知道何时可以,何时不可吗? 我肯定不克不及。 老是引用你的 bash 变量,你会更快活的。

返回代码, &&, 和 `||

你可以用 && 实现!

例如:create_user && make_home_directory。 这将运行 create_user ,检查返回代码,然后仅在返回代码为0时运行 make_home_directory。

export MYVAR=2

这与 create_user; make_home_directory 不合,无论 create_user 的返回代码是什么,都将运行 make_home_directory。

你也可以应用create_user || make_home_directory,只有create_user运行掉败才运行make_home_directory 。 这在技巧范畴中异常奇妙。

后台过程

杂项事宜(“老是引用你的bash变量”)

  • long_running_command &

    如不雅你后来懊悔将过程放到后台,并欲望把它带调回前台,你可以用 fg 来做到这一点。 如不雅不指荷琐过程,您可以应用 jobs 查看所有后台过程。因为某种原因,fg 须要一个 “job ID”(这就是 jobs 打印输出的)而不是一个 PID。 谁知道 Bash 为什么如许子呢。

    别的,如不雅你在后台运行太多的过程,内置等待敕令将比及它们都返回。

    说到懊悔 - 如不雅你不当心在缺点的终端启动一个过程,Nelson Elhage 有一个很棒的项目叫做 reptyr ,可以保存你的过程并将其移到屏幕会话或者某些其他器械中。

    【编辑推荐】

    1. Bash脚本15分钟进阶教程
    2. 这根本不是 BASH 的 BUG,是特点!
    3. 感慨号:bash 的汗青扩大功能
    4. 如安在 Linux 上运行敕令前临时清空 Bash 情况变量
    5. 2016年收入最高编程说话 Bash说话裁缝外“黑马”
    【义务编辑:seeker TEL:(010)68476606】

      推荐阅读

      如何在Webpack中执行代码分割

    代码绑缚我很早就写过几个关于 Javascript 脚本的绑缚的帖子,人们可能认为我是猖狂的热衷于应用绑缚,然则我认为我是不由自立的,因为它是异常有趣的:-)。有几篇我写的文┞仿是关于实现最>>>详细阅读


    本文标题:编写快速安全Bash脚本的建议

    地址:http://www.17bianji.com/lsqh/34763.html

  • 关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)