首页 > 代码库 > shell--特殊位置参数变量及常用内置变量

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


本文出自 “IT看看看” 博客,请务必保留此出处http://jinlong.blog.51cto.com/3276088/1954810

shell--特殊位置参数变量及常用内置变量