Shell成长之路
- #!/usr/bin/env bash 与#!/usr/bin/bash
- #!/usr/bin/env bash提供了不同系统的灵活性,只要程序在$PATH中
- dirnameasename
- dirname:父目录
- `dirname $0`:获取当前脚本的目录;curpath=$(cd $(dirname $0);pwd -P)
- basename:最后的目录名或者文件名
$0$?$!$$$*$#$@$1~$n$-
- $0:shell本身的文件名
- $1~$n:添加到shell的各个参数值
- $?:最后运行命令的返回值
- $!:shell最后运行的后台Process的PID
- $$:shell本身的PID
- $*:所有参数列表
- $@:所有参数列表,可做数组用
- $#:添加到shell的参数个数
- $-:显示shell使用的当前选项,与set命令功能相同
- (set -o posix;set)|less
- set:显示所有shell变量
- -x 会在执行每一行 shell 脚本时,把执行的内容输出来。它可以让你看到当前执行的情况,里面涉及的变量也会被替换成实际的值。
-e
会在执行出错时结束程序,就像其他语言中的“抛出异常”一样。
- -a 将变量提升为环境变量
- set -o posix:在POSIX兼容模式
- $(),``,$(())
- ``:\会转义,单个忽略
- ():转义
- $(()):用于整数运算
- trap:针对指定信号采取指定动作,trap "" INT(屏蔽SIGINT信号)
- -l:把所有信号打印出来
- -p:把当前的trap设置打印出来
原文地址:https://www.cnblogs.com/liudingchao/p/11251052.html