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/

    假设是一种超能力
  • 相关阅读:
    108.Convert Sorted Array to Binary Search Tree
    111.Minimum Depth of Binary Tree
    118.Pascal's Triangle
    122.Best Time to Buy and Sell Stock II
    35.搜索插入位置
    OSI参考模型
    虚拟机访问tomcat
    linux输入ifconfig找不到IP的解决办法
    分层协议、协议、接口、服务
    Spring Boot项目的创建
  • 原文地址:https://www.cnblogs.com/Haihong72H/p/14645624.html
Copyright © 2011-2022 走看看