zoukankan      html  css  js  c++  java
  • bash的一些注意

    $() 和``的作用一样,都是把命令的结果输出
    $[]和$(())可以引用变量,可以在里面做算术运算
    ${}
    $0表示脚本名
    $1位置变量1
    $#变量的个数
    $@ 或 $* 变量的成员
    shell中变量默认只有全局作用域
    shell的间接引用值
    巧用heredocs
    连续创建10个文件 touch 00{1..10}.file
    读取当前脚本的路径:script_dir=$(cd $(dirname $0) && pwd)
    会使用trap捕获信号,并在接受到终止信号时执行一些收尾工作(trap "commands" SIG #当触发某种信号时执行命令)

    读取文件时不要使用for loop而要使用while read
    尽量使用func(){}来定义函数,而不是func{}
    尽量使用[[]]来代替[]
    尽量使用$()将命令的结果赋给变量,而不是反引号
    在复杂的场景下尽量使用printf代替echo进行回显

    ( command1; command2; command3; ... )圆括号中命令列表的命令将会运行在一个子shell中.
    子shell中的变量对于子shell之外的代码块来说, 是不可见的. 当然, 父进程也不能访问
    这些变量, 父进程指的是产生这个子shell的shell. 事实上, 这些变量都是局部变量.
    每个shell脚本都有效地运行在父shell的一个子进程中

    变量的间接引用 eval var1=$$var2 或者${!variable}
    ${vars?} 如果其中某个变量没被设置, 那么就打印错误信息.

    set命令用来修改内部脚本变量的值. 它的一个作用就是触发选项标志位来帮助决定脚本的行为.
    另一个作用是以一个命令的结果(set command)来重新设置脚本的位置参数. 脚本将会从命令的
    输出中重新分析出位置参数.

    每次shift都会前进选取下一个参数
    参考:https://blog.mythsman.com/2017/07/23/1/

    假设是一种超能力
  • 相关阅读:
    disruptor和ArrayBlockingQueue和LinkedBlockingQueue队列性能对比
    守护线程的作用和前台线程的区别
    tomcat导入idea作为maven项目
    百度网盘不限速
    netty ChannelOption参数 backlog 和 somaxconn同时设置才会生效
    dubbo的初探
    IDEA的常用快捷键
    Lucene简单了解和使用
    Hadoop的简单了解与安装
    Nginx的简单了解与使用
  • 原文地址:https://www.cnblogs.com/Haihong72H/p/14645624.html
Copyright © 2011-2022 走看看