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脚本的执行的方式都是类似的哦。

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

shell script 编写和执行

1. shell script shell script是针对shell写的脚本。 使用纯文本文件, 将一些shell的语法和命令写在里面,使用户能处理复杂的操作。 命令执行: 需要文件有rx...
  • u014285882
  • u014285882
  • 2014年10月26日 17:16
  • 2113

Linux 中执行Shell 脚本的方式(三种方法)

Linux中Shell脚本的执行(三种方法)
  • timchen525
  • timchen525
  • 2017年07月30日 21:47
  • 2749

Linux汇编和Shellcoding-1 汇编语言简介

1. 什么是汇编语言 •汇编语言(assemblylanguage)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。 在汇编语言中,用助记符(Mnemonics)...
  • xingkongtianyuzhao
  • xingkongtianyuzhao
  • 2016年05月14日 22:13
  • 1003

linux shell script中的函数简介

懂C语言的人, 没有不知道函数的, 下面我们来看看linux shell script中的函数, 其实也很简单: [taoge@localhost learn_shell]$ ls a.sh [tao...
  • stpeace
  • stpeace
  • 2015年05月16日 17:46
  • 1592

shell script编程小结--附带实例

shell script编程小结前言shell作为编程中不可或缺的一部分,平日里,我们经常会在shell中输入一些命令。有时候也需要完成一些复杂的操作,重复的输入多条相同的命令,过于费时和无趣。所以掌...
  • liusheng95
  • liusheng95
  • 2016年05月20日 15:45
  • 912

linux脚本执行的两种方式及区别

linux脚本执行的两种方式及区别   1、两种方式:       A、将脚本作为命令行参数的方式如:sh ping.sh       B、脚本能自己独立运行的方式...
  • z2200903505
  • z2200903505
  • 2014年09月03日 22:16
  • 9196

shell script 编写和执行

学习shell script,那么shell script是什么呢?其汉语意思是程序化脚本。其实shell script 是利用shell的功能所写的一个程序(program),这个程序是使用纯文本文...
  • AttractiveBoy
  • AttractiveBoy
  • 2016年07月06日 01:12
  • 196

shell脚本的几种不同执行方式的区别实验

shell脚本归结起来有三种执行方式,按执行时是否创建子shell可以分为两类。下面贴出我的测试脚本及测试结果。 #! /bin/bash cd echo "this shell's pid is ...
  • lx1848
  • lx1848
  • 2016年08月03日 01:49
  • 595

Shell简介:什么是Shell,Shell命令的两种执行方式

Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的。Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释...
  • jek123456
  • jek123456
  • 2016年09月20日 10:14
  • 1078

shell脚本转换成二进制的可执行文件方法--加密

http://www.360doc.com/content/14/0507/14/10058718_375504586.shtml http://www.linuxidc.com/Linux/2...
  • zdf511391565
  • zdf511391565
  • 2016年03月13日 14:22
  • 3482
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux下shell script的执行方式汇编
举报原因:
原因补充:

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