Linux下shell script的执行方式汇编

原创 2013年12月02日 21:49:06

假设存在shell scripts文件为/home/myscripts/helloworld.sh,现列举如下的执行方式:

 

一、直接命令执行

             1)绝对路径——/home/myscripts/helloworld.sh

             2)相对路径——假设当前工作目录为/home/myscripts,则执行方式为./helloworld.sh

             3)利用变量PATH— —将helloworld.sh脚本文件放在PATH变量中任一个目录,然后直接以helloworld.sh来执行

Remarks:

             问题:在第2)条中,为什么不是直接用helloworld.sh来执行呢?因为相对于其当前工作目录/home/myscripts,./hellowold.sh和helloworld.sh都是相对路径了。假设当前工作目录为/home,那么可以通过./myscripts/helloworld.sh和myscripts/helloworld.sh来执行都可以的。这和问题上面的有什么不同呢?

             解答: 如果想直接用helloworld.sh来执行成功的话,其实就要采取第3)种方式了。

 

二、以bash进程来执行

           假设当前工作目录为/home/myscripts,则直接通过bash helloworld.sh或者sh helloworld.sh来执行

Remarks:可以使用sh helloworld.sh来执行,是因为/bin/sh就是/bin/bash的连接文件

 

三、以source或小数点(.)来执行

           假设当前工作目录为/home/myscripts,则通过source helloworld.sh或. helloworld.sh来执行,二者是一样的哦

 

四、各种执行shell scripts方式的区别

           a )第三种执行方式和第一、二种执行方式的区别           

           利用第三种方式来执行shell scripts,就会在父进程中去执行shell scripts中的命令。而第一、二两种方式,会使用一个新的bash环境来执行脚本内的命令,就是在子进程中执行脚本命令了。所以如果脚本文件中有有关变量的设置的时候,第一、二种方式下,等脚本文件执行完毕,回到父进程bash中时,在脚本文件中设置的变量已经查不到了。而第三种方式下,因为脚本文件就是在父进程bash中执行的,所以等脚本文件执行完毕,仍然可以查到在脚本文件中设置的变量。

            b)第一种执行和第二种执行方式一样吗

            从原理上说,二者是一样的,因为在shell scripts文件的第一行有#!/bin/bash语句,就是说要用bash来执行,相当于shell *.sh


五、Linux中命令的查找的过程

         当我们在命令提示符下输入一个命令时,Linux的查找该命令的流程如下:

        (1)已相对命令或决定命令去查找(像/home/jianzai/script/my_script.sh,或./my_script.sh,但是如果直接是my_script.sh的话,那就不经过第1步了,从第2步开始找了 )

        (2)有alias找到命令,然后执行

        (3)shell内置的命令执行

        (4)在PATH环境变量设置的目录中去查找


六、备注

           第一种方式需要赋予文件可执行权限,第二种方式则不要,只要有shell(或python命令)的执行权限就行了。注意python、perl脚本的执行的方式都是类似的哦。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Linux下shell与子shell及执行Script的几种方式

Linux登陆主机后,在执行Script之前,其实我们已经处于一个shell中,即Login shell。它是将来要执行Script的父shell。如root账号默认为/bin/bash。   ...
  • liuyiy
  • liuyiy
  • 2012-10-12 11:19
  • 8324

Linux下c++调用自己编写的matlab函数:通过shell script system command实现

在实际开发中,很多时候需要通过shellscript或者shellcommand来执行matlab函数。其语法如下:matlab-nodesktop -nosplash - nojvm -r "[co...

Linux下的C语言的执行流程与汇编分析

作者:鲍迪 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 汇编基础 1一些...

Linux下如何配置ip地址/shell 方式/配置文件方式两种

Linux下如何修改ip地址 2012-01-18 12:10:34     我来说两句       收藏    我要投稿 在Linux的系统下...
  • samxx8
  • samxx8
  • 2012-10-09 09:33
  • 4182

Linux的Shell Script学习

什么是 Shell scripts ? shell script 是利用 shell 的功能所写的一个『程序 (program)』,这个程序是使用纯文字文件,将一些 shell 的语法与指令写在里面...

linux shell script cook book

  • 2012-01-08 20:23
  • 12.31MB
  • 下载

Linux shell Script

  • 2015-10-12 15:30
  • 31KB
  • 下载

Linux私房菜Shell script 课后练习第十二章

ShellScript的优势:1、自动化管理的重要依据2、追踪与管理系统的重要工作3、简单入侵侦测功能4、连续命令单一化5、简易的数据处理6、跨平台支持与学习历程较短 shellscript的文件后缀...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)