shell--特殊位置参数变量及常用内置变量
1.shell中的特殊位置参数变量 $0:获取当前执行的shell脚本的文件名,如果执行脚本包含了路径,那么就包括脚本路径 $n:获取当前执行的shell脚本的第n个参数,n=1..9,当n为0时表示脚本的文件名;如果n大于9,则用大括号括起来 比如${10},接的参数以空格隔开 $#:获取当前执行的shell脚本后面接的参数的总个数 $*:获取当前shell脚本所有传参的参数,不加引号和$@相同;如果给$*加上双引号,如"$*",则表示把所有的参数视 为单个字符串,相当于"$1 $2 $3" $@:获取当前shell脚本所有传参的参数,不加引号和$*相同;加上双引号,如"$@",则表示将所有的参数视为不同的 独立字符串,相当于"$1" "$2" "$3" "..." 这是将多参数传递给其他程序的最佳方式,因为它会保留所有的内嵌 在每个参数里的任何空白。
2.shell进程中的特殊状态变量 $?:获取执行上一个指令的执行状态返回值(0为成功,非0为失败),常用 $$:获取当前执行的shell脚本的进程号(PID),不常用 $!:获取上一个在后台工作的进程的进程号(PID),不常用 $_:获取在此之前执行的命令或脚本的最后一个参数,不常用 3.bash shell内置变量命令 bash shell包含一些内置命令。这些内置命令在目录列表里是看不见的,它们由shell本身提供。常用的内部命令有: echo、eval、exec、export、read、shift。 echo:在屏幕上输出信息 命令格式:echo args 参数: -n:不换行输出内容 -e:解析转义字符 转义字符: n:换行 r:回车 t:制表符(tab) b:退格 v:纵向制表符 eval: 命令格式:eval args 功能:当shell程序执行到eval语句时,shell读入参数args,并将它们组合成一个新的命令,然后执行 exec: [root@www script]# vim exec.sh [root@www script]# cat exec.sh #!/bin/bash exec </script/1.txt while read line do echo $line done echo ok [root@www script]# seq 5 > 1.txt [root@www script]# cat 1.txt 1 2 3 4 5 [root@www script]# sh exec.sh 1 2 3 4 5 ok (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |