shell--特殊位置参数变量及常用内置变量
2017-08-09 15:17
609 查看
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
$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
相关文章推荐
- shell 位置变量和特殊变量参数
- Shell脚本中的位置变量参数(特殊字符)实例讲解
- shell位置参数及特殊变量
- Shell脚本中的位置变量参数(特殊字符)实例讲解
- shell位置参数和特殊变量
- LINUX BASH SHELL位置变量与特殊变量参数
- shell中的参数扩展, 特殊变量
- shell中位置变量参数
- shell学习之常用bash内置变量
- linux 位置参数 特殊变量 read grep 变量赋值
- shell中的参数扩展, 特殊变量
- shell中的参数扩展, 特殊变量
- Shell编程 详解特殊变量之位置参数
- Shell---常用命令、常用环境变量、PS1、语系变量、位置变量、预定义变量、数值运算
- shell脚本程序中的部分常用环境变量和参数变量的说明以及简单shell脚本示例
- perl常用的内置特殊变量
- [Shell]Bash变量:自定义变量 & 环境变量 & 位置参数变量 & 预定义变量
- shell 总结之特殊变量:位置变量 $1 ,$* ,$?
- perl常用的内置特殊变量
- shell中的位置变量和特殊变量