【Bash百宝箱】shell内建命令之eval、exec、exit、export
来源:互联网 发布:2013日本进出口数据 编辑:程序博客网 时间:2024/06/11 16:27
1、eval
在shell中,内建(builtin)命令eval,格式如下:
eval [arg ...]
eval命令首先读取其参数值,然后把它们连接成一个命令并执行这个命令,这个命令的退出状态即eval的退出状态,如果没有指定参数,其退出状态为0。
在简单命令的场景中,eval并没有什么特殊之处,如下例子:
$ foo="uname"$ unameLinux$ $fooLinux
但是,遇到复杂命令时,eval就发挥其作用了,如下例子:
$ foo="uname | grep Linux"$ uname | grep LinuxLinux$ $foouname: extra operand ‘|’Try 'uname --help' for more information.$ eval $fooLinux
2、exec
在shell中,内建(builtin)命令exec,格式如下:
exec [-cl] [-a name] [command [arguments]]
exec命令,如果指定了command,它就会取代当前的shell而不是创建新的进程,所以命令执行完毕后shell也就退出了。如果设置了“-l”即login选项,在command的第0个参数前会添加符号“-”,这是login所需的。如果设置了“-c”即clear选项,command命令将在一个空的环境中执行。如果指定了“-a name”选项,name会作为第0个参数传给command。若没有指定command,可以使用重定向来影响当前的shell。重定向成功时退出状态为0,否则为1。
exec后面的命令如果是多个简单命令组合而成的复合命令,只执行第一个命令,可以把这些符合命令写入shell脚本中,然后通过exec执行这个脚本,此时脚本中所有的命令都会执行。
3、exit
在shell中,内建(builtin)命令exit,格式如下:
exit [n]
exit命令退出当前shell,退出状态为n,若没有指定n,退出状态为执行的最后一个命令的退出状态。
4、export
在shell中,内建(builtin)命令export用于把当前shell的变量、函数导出到子shell,这样在子shell中就可以使用父shell中定义的变量、函数。export的退出状态为0,除非格式错误或者指定了不存在的函数。export有多种格式,如下:
export 显示当前导出的变量export -p 显示当前导出的变量export name 导出变量nameexport name=word 导出变量name并赋值为wordexport -n name 取消导出的变量nameexport -f 显示当前导出的函数export -f name 导出函数nameexport -fn name 取消导出的函数name
- 【Bash百宝箱】shell内建命令之eval、exec、exit、export
- 【Bash百宝箱】shell内建命令之冒号
- 【Bash百宝箱】shell内建命令之句点与source
- 【Bash百宝箱】shell内建命令之break与continue
- 【Bash百宝箱】shell内建命令之cd、getopts
- 【Bash百宝箱】shell内建命令之hash
- 【Bash百宝箱】shell内建命令之times、umask、unset
- 【Bash百宝箱】shell内建命令之test
- 【Bash百宝箱】shell内建命令之trap
- 【Bash百宝箱】shell内建命令之alias与unalias
- 【Bash百宝箱】shell内建命令之builtin、command、caller
- 【Bash百宝箱】shell内建命令之declare、typeset、local
- 【Bash百宝箱】shell内建命令之echo、printf
- 【Bash百宝箱】shell内建命令之read、readarray、mapfile
- 【Bash百宝箱】shell内建命令之bind、enable、ulimit
- 【Bash百宝箱】shell内建命令之set、shopt
- 【Bash百宝箱】shell内建命令之echo、printf
- 【Bash百宝箱】shell内建命令之pwd、readonly、return、shift
- 两个数相减,不能用加减乘除做减法
- ACdream1064-完美数
- JZOJ4721 NlogN的LCS
- September 17th 模拟赛C T1 铁轨 Solution
- 怎么吸引蜘蛛
- 【Bash百宝箱】shell内建命令之eval、exec、exit、export
- 现今的农村教育令人刮目相看
- opencv计算两个轮廓之间hu矩相似程度,MatchShapes
- hdu 5900 QSC and Master【区间dp】
- [Crash分析] java.lang.NullPointerException
- HDU 5901 Count primes (求1e11内素数个数、模板题....)
- Redis 入门之 数据类型
- mysql面试题以及答案包括优化
- 51nod 1073 约瑟夫环