linux $exec(linux umount命令)
各位老铁们,大家好,今天由我来为大家分享linux $exec,以及linux umount命令的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!
linux中的<prefix>和<exec_prefix>是什么意思
1.安装目录变量
在Makefile中,安装目录同样需要使用变量来指定,这样就可以很方便的修改文件的安装路径。安装目录的标准命名下边将一一介绍。这些变量基于标准的文件系统结构,这些变量的变种在SVR4、4.4BSD、Linux、Ultrix v4以及其它现代操作系统中都有使用。
安装者希望在调用make是改变这些值,(例如 make prefix=/usr install),或者在配置时改变这些值(例如 configure–prefix=/usr)。GNU包不会对在该系统上这些变量适合于哪些值做任何猜想,或者说GNU包不会猜测这些包应该被安装到哪里是更合适的:GNU包使用缺省的特定设置是为了以便于所有的GNU包行为一致,它允许安装者做任何自己想要的布局。
以下所罗列的两个变量是指定安装文件的根目录。所有其它安装目录都是它们的子目录。注意:文件不能直接安装在这两个目录下。
prefix
这个变量(通常作为实际文件安装目录的父目录,可以理解为其它实际文件安装目录的前缀)用于构造下列(除这两个安装根目录以外的其它目录变量)变量的缺省值。变量“prefix”缺省值是“/usr/local”。创建完整的GNU系统时,变量prefix的缺省值是空值,“/usr”是“/”的符号连接符文件。(如果使用“Autoconf”工具,它应该写成“@prefix@”)。注意:当更改了变量“prefix”以后重新执行“make install”,不会导致可执行程序(终极目标)的重建。
shell脚本中的 exec 命令
exec执行命令时,不会启用新的shell进程。
source和.也不会启用新的shell进程,在当前shell中执行,设定的局部变量在执行完命令后仍然有效。
bash或sh执行时,会另起一个子shell进程,其继承父shell进程的环境变量,其子shell进程的变量执行完后不影响父shell进程。
exec是用被执行的命令行替换掉当前的shell进程,且exec命令后的其他命令将不再执行。
例如在当前shell中执行 exec ls表示执行ls这条命令来替换当前的shell,即为执行完后会退出当前shell。
为了避免父shell被退出,一般将exec命令放到一个子shell脚本中,在父sehll中调用这个子shell脚本,调用处可以用bash xx.sh(xx.sh为存放exec命令的脚本),这样会为xx.sh建立一个子shell去执行,当执行exec后该子shell进程就被替换成相应的exec的命令。
其中有一个例外:当exec命令对文件描述符操作的时候,就不会替换shell,而是操作完成后还会继续执行后面的命令!
文件描述符
shell中描述符一共有12个
0代表标准输入
1代表标准输出
2错误输出
其他 3-9都是空白描述符
其含义是:复制标准输出到3,错误输出到 4,把 3 4保存在bash.log这个文件中。
其含义是:将bash.sh脚本执行的标准输出和错误输出追加重定向到 bash.log
如果exec跟的是其他命令,则其他命令结束后,本shell也随之停止
可以看到随着 echo" hello oracle"这条指令运行完本整个脚本执行完毕,后面的 echo" hello db2"没有执行!
二、Linux shell脚本中,$@和$@分别是什么意思?
$@表示所有脚本参数的内容
$#表示返回所有脚本参数的个数
示例:编写如下shell脚本,保存为test.sh
说明:给脚本提供了两个参数,所以@代表了参数的内容!
怎么理解shell脚本中 exec"`dirname"$0"`/node""$0""$@"?
$0 #脚本自己的路径
"`dirname"$0"`"/node #脚本目录下的node程序的路径
$@ #脚本被执行时的命令行参数
合起来就是:用脚本目录下的node程序来解释这个脚本本身
exec scala"$0""$@"是什么意思
这是bash语法。
$0 #表示当前脚本的名字
$@ #表示当前脚本执行的所有参数
exec scala"$0""$@" #表示用scala命令,带参数,执行当前脚本
$0是位置参数,表示脚本名称
$1表示脚本的第一个参数,依次类推直到$9
exec用于执行命令、或脚本、或外部可执行程序,会新建一个shell去执行
综上,这里exec sh"$0"就是执行脚本本身
所以,就是一个循环过程,每隔两秒打印一次 Hello
请教会linux shell脚本的=~是什么意思
是正则表达式的字符判断
if [[$i=~ ^[0-9]+$ ]]&& echo 1
1、^是匹配字符串开始的意思,[0-9]只要不是数字都不要。
2、~+的意思的^[0-9]的范围里匹配一次以上+$是匹配结束符。
touch-t"201109021200.00" tempfile
使用引号内的时间戳在当前目录建立一个叫tempfile的文件
find-name"*VIRTUALID*"-newer tempfile-exec cp{}/home/wbft/luo \;
扩展资料
Shell就是一个命令行解释器,它的作用就是遵循一定的语法将输入的命令加以解释并传给系统。它为用户提供了一个向Linux发送请求以便运行程序的接口系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。
Shell本身是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言(就是你所说的shell脚本)。作为命令语言,它互动式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高阶语言中才具有的控制结构,包括循环和分支。
它虽然不是 Linux系统内核的一部分,但它调用了系统内核的大部分功能来执行程序、创建文档并以并行的方式协调各个程序的运行。