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/

    假设是一种超能力
  • 相关阅读:
    85. Maximal Rectangle
    120. Triangle
    72. Edit Distance
    39. Combination Sum
    44. Wildcard Matching
    138. Copy List with Random Pointer
    91. Decode Ways
    142. Linked List Cycle II
    异或的性质及应用
    64. Minimum Path Sum
  • 原文地址:https://www.cnblogs.com/Haihong72H/p/14645624.html
Copyright © 2011-2022 走看看