linux下的set命令的简单介绍

Linux中set,env和export这三个命令的区别 Linux中set,env和export这三个命令的区别
set命令显示当前shell的变量,包括当前用户的变量;
env命令显示当前用户的变量;
export命令显示当前导出成用户变量的shell变量 。
每个shell有自己特有的变量(set)显示的变量,这个和用户变量是不同的,当前用户变量和你用什么shell无关 , 不管你用什么shell都在,比如HOME,SHELL等这些变量,
但shell自己的变量不同shell是不同的,比如BASH_ARGC,
BASH等,这些变量只有set才会显示,是bash特有的,export不加参数的时候,显示哪些变量被导出成了用户变量,因为一个shell自己的变
量可以通过export “导出”变成一个用户变量 。
linux的shell脚本中的set是什么意思?怎么理解set命令作用主要是显示系统中已经存在的shell变量,以及设置shell变量的新变量值 。使用set更改shell特性时,符号"+"和"-"的作用分别是打开和关闭指定的模式 。set命令不能够定义新的shell变量 。如果要定义新的变量,可以使用declare命令以变量名=值的格式进行定义即可 。使用:set(选项)(参数)
例如:
declare mylove='Visual C++' #定义新环境变量
再使用set命令将新定义的变量输出为环境变量,输入如下命令: set -a mylove
标示已修改的变量,以供输出至环境变量 。
-b:使被中止的后台程序立刻回报执行状态
-C:转向所产生的文件无法覆盖已存在的文件
-d:Shell预设会用杂凑表记忆使用过的指令,以加速指令的执行 。使用-d参数可取消 。
-e:若指令传回值不等于0,则立即退出shell 。
-f:取消使用通配符 。
-h:自动记录函数的所在位置 。
-H Shell:可利用"!"加指令编号的方式来执行history中记录的指令 。
-k:指令所给的参数都会被视为此指令的环境变量 。
-l:记录for循环的变量名称 。
-m:使用监视模式 。
-n:只读取指令,而不实际执行 。
-p:启动优先顺序模式 。
-P:启动-P参数后,执行指令时,会以实际的文件或目录来取代符号连接 。
-t:执行完随后的指令,即退出shell 。
-u:当执行时使用到未定义过的变量,则显示错误信息 。
-v:显示shell所读取的输入值 。
-x:执行指令后,会先显示该指令及所下的参数 。
请教linux下shell 中 set 的用法使用set命令可以设置各种shell选项或者列出shell变量.单个选项设置常用的特性. 在某些选项之后-o参数将特殊特性打开.在某些选项之后使用+o参数将关闭某些特性, 不带任何参数的set命令将显示shell的全部变量.除非遇到非法的选项,否则set总是返回ture.
当BASH shell被调用时,可以列出全部的选项.当前的选项集列在$-中.在option参数被处理后,其他的参数被赋值到位置参数中(,,...,$n)
格式
set [--abefhkmnptuvxldCHP] [-o option name] [arguments ...]
详解:
选项 说明
-a 自动向已经修改的变量或为导出后序命令的变量作出标志
-b 不是在原提示符之前,而是立即引发终止后台任务的状态表
-e 如果命令带非零值返回,立即退出 -
f 禁止带扩展名的路径
-h 定义函数时,定位和存储函数命令,当函数被执行时,通常查询 函数命令
-k 所有的关键词参数,而不只是那些命令名前的关键词参数,被放 在环境命令中
-m 监视器模式,启动任务控制.此选项默认支持系统shell交互.后 台进程以单独的进程组运行,在每次完成任务时显示包含退出的 状态行
-n 读取命令但不执行命令.通常监查shell脚本的句法错误.交互 shell被忽略

推荐阅读