一、shell 特殊位置变量
$0 文件名及路径
$1~$n 添加到Shell的各参数值。$1是第1参数、$2是第2参数…
$* 传递给脚本的所有参数列表如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
$#添加到shell 参数个数
$$ Shell本身的PID(ProcessID)
$? 最后运行命令结束的代码(还回值)
$@所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。
$- 使用Set命令设定的Flag一览
二、source、sh、bash、./执行脚本的区别
. 点命令,就是个点符号(从Bourne Shell而来)是source的另一名称
source 命令(从 C Shell 而来)执行bash shell的内置命令
bash /bin/bash命令功能要比sh强大
export可新增,修改或删除环境变量,供后续执行的程序使用。同时,重要的一点是,export的效力仅及于该次登陆操作。注销或者重新开一个窗口,export命令给出的环境变量都不存在了。
export PATH=/bin/bash:$PATH
(点 source bash sh ./执行的文件名)他们之间的区别
第一;点和source 执行方式是等价;即两种执行方式都是在当前shell进程中执行此脚本,而不是重新启动一个shell 而在子shell进程中执行此脚本。
第二:bash sh (可以无执行权限)二者的执行文件不同
./ (必须有执行权限)三者执行方式是等价的;此三种执行脚本的方式都是重新启动一个子shell,在子shell中执行此脚本。
验证结果:
[root@localhost ~]#name=dangxu //定义一般变量
[root@localhost ~]# echo ${name}
dangxu
[root@localhost ~]# cat test.sh //验证脚本,实例化标题中的./*.sh
#!/bin/sh
echo ${name}
[root@localhost ~]# ls -l test.sh //验证脚本可执行
-rwxr-xr-x 1 root root 23 Feb 6 11:09 test.sh
[root@localhost ~]# ./test.sh //以下三个命令证明了结论一
[root@localhost ~]# sh ./test.sh
[root@localhost ~]# bash ./test.sh
[root@localhost ~]# . ./test.sh //以下两个命令证明了结论二
dangxu
[root@localhost ~]# source ./test.sh
dangxu
[root@localhost ~]#
三、取变量或字符串的长度方法
echo $a|wc -L
echo ${#a}
expr length "$a"
四、shell数值运算方法
expr
(())
let
bc
$[]
awk
typeset
五、read 命令 是bash 内置 帮助:help read
-p 设置提示信息
-t设置输入等待时间,单位默认秒