source/"." scripts_name 脚本在当前shell运行,自身脚本中的变量值和函数等返回值传递到当前shell环境中
bash/sh scipts_name 产生一个子shell环境运行脚本中命令;子shell会直接继承父shell的变量、函数等,反之则不可以,推荐是bash执行
通过系统用户交互式登陆运行shell: /etc/profile(/etc/profile.d/) -> $/home/bash_profile -> $HOME/.bashrc -> /etc/basrc
非登陆交互式登陆运行shell:只加载$HOME/.bashrc和/etc/bashrc
单引号:单引号内的所有内容都会原样输出
双引号:输入引号内的所有内容:如果内容中有命令(需要反引号)、变量、特殊转移字符等,会把变量、命令、特殊转义字符解析出结果,然后在出入最终内容,这称为弱引用。
无引号:赋值时,如果变量中有空格或者特殊字符,会造成赋值不完整;也会解析变量,命令
反引号:用于引用执行命令,相当于$()
特殊变量:
$0:获取当前执行shell脚本的文件名
$n:获取当前执行shell脚本的第n个参数,如何n大于9,则必须用大括号括起来,${10}
$*:获取当前执行shell脚本的所有传参的参数,如果加上引号("$*")将所有参数视为单个的字符串,相当于:"$1,$2,$3"
$@:获取当前执行shell脚本所有传参的参数,如果加上引号("$@")将所有的参数视为不同的独立字符串,相当于“$1” "$2" “$3”。