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/

    假设是一种超能力
  • 相关阅读:
    Codeforces977D ---Divide by three, multiply by two 深搜+map存出现的数
    HDU4522 湫湫系列故事——过年回家
    2018浙江省赛记录
    POJ3259 :Wormholes(SPFA判负环)
    上海高校金马五校赛 F题:1 + 2 = 3?
    牛客练习赛15A-吉姆的运算式(Python正则表达式瞎搞)
    ZOJ2018/4月月赛G题Traffic Light(广搜)
    luogu 3960 列队
    noip2017
    10.3 模拟赛
  • 原文地址:https://www.cnblogs.com/Haihong72H/p/14645624.html
Copyright © 2011-2022 走看看