`

source 加要执行的shell script文件名, shell script文件名直接运行于./shell script 的区别

 
阅读更多

下面的内容基于Linux bash环境

在unix中运行shell脚本的方式有很多种,假设有一个可以运行的脚本叫test.sh,可以通过source加脚本文件名,source test.sh(= . ./test.sh 两个.), 也可以通过./路径/test.sh方式运行,如果脚本在PATH路径下,还可以字节通过脚本名运行,如test.sh。

它们之间的区别是:

source test.sh的方式让test.sh在当前的shell 进程中运行,不启动子shell.

./test.sh(只有一个点) 和test.sh(test.sh必须在PATH路径中)会启动子shell运行。

另外,当把一个shell脚本放在PATH中的时候,尤其是没有sh后缀名的时候,如果系统中有alias,function和这个shell脚本重名的话,alias和function的优先级更高。

如,系统有一个alias: alias ft="echo ft is an alias"

同时还有一个function 也叫ft(){echo ft is a function}

然后在PATH路径(比如说当前路径目录也被设为PATH)中也有一个ft脚本文件,内容是echo ft is in a script

如果在shell里运行ft,会执行alias,如果将alias去掉,unalias ft,会执行function,如果想执行脚本ft,可以通过./ft

当运行脚本不是你期望的结果的时候,可以通过type 脚本名 看看是不是还有同名的alias,function,通过type -all ft 可以列出所有的ft的定义。



分享到:
评论

相关推荐

    lunch_r58_20160906.7z

    ./octopus_perf.mk: device/softwinner/octopus-perf/configs/tablet_core_hardware.xml:system/etc/permissions/tablet_core_hardware.xml ./octopus_perf.mk: device/softwinner/octopus-perf/configs/camera.cfg:...

    lunch_cb5801_r58_20160907.7z

    ./octopus_perf.mk: device/softwinner/octopus-perf/configs/tablet_core_hardware.xml:system/etc/permissions/tablet_core_hardware.xml ./octopus_perf.mk: device/softwinner/octopus-perf/configs/camera.cfg:...

    Linux高级bash编程

    一个没什么用的,source自身的脚本 11-22. exec的效果 11-23. 一个exec自身的脚本 11-24. 在继续处理之前,等待一个进程的结束 11-25. 一个结束自身的脚本. 12-1. 使用ls命令来创建一个烧录CDR的内容列表 12-2. Hello...

    Advanced Bash-Scripting Guide <>

    一个没什么用的,source 自身的脚本 11-22. exec 的效果 11-23. 一个exec 自身的脚本 11-24. 在继续处理之前,等待一个进程的结束 11-25. 一个结束自身的脚本. 12-1. 使用ls 命令来创建一个烧录CDR 的内容列表 12-2. ...

    auto-git:GNOME Shell扩展-自动将源代码更新到GitHub.com自动更新源码到GitHub.com-git source code

    自动Git ...要求 Ubuntu / Linux Mint / Debian / Zorin操作系统 $ sudo apt安装git 其他...$ git clone $ cd自动git $ mv .local / share / gnome-shell / extensions 执照 版权所有:copyright:2017 Jason Mun( ) 根据

    xls转mdb代码以及.exe执行软件

    如果要导出数据到已经生成结构(即现存的)FOXPRO表中,可以直接用下面的SQL语句 insert into openrowset('MSDASQL', 'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\', 'select * from [aa.DBF]...

    completeme:使用curses在shell中自动完成; 与Github的“ t”功能非常相似

    满足我TL;... $ echo“ source`which setup_completeme_key_binding.sh`” &gt;&gt;〜/ .profile $ source〜/ .profile Windows :描述completeme是一个Python脚本,用于自动完成给定目录中的文件名,就像Git

    SQL语句导入导出大全

    EXEC master..xp_cmdshell 'bcp SettleDB.dbo.shanghu out c:\temp1.xls -c -q -S"GNETDATA/GNETDATA" -U"sa" -P""' /*********** 导入Excel SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data ...

    gc2145_tinav2.1验证完成20170523_1648.7z

    R16_Camera模块开发说明文档_V1.8.pdf 所有步骤请按照这个说明书执行 1、驱动的编译配置: R:\wyb\gc2145_tinav2.1\lichee\linux-3.4\drivers\media\video\sunxi-vfe\device\gc2145.c R:\wyb\gc2145_tinav2.1\...

    adb1.0.26包含fastboot.exe

    即在 adb shell pm list packages 的基础上可以加一些参数进行过滤查看不同的列表,支持的过滤参数如下: 参数 显示列表 无 所有应用 -f 显示应用关联的 apk 文件 -d 只显示 disabled 的应用 -e 只显示 enabled 的...

    hive_shell.sh

    hive1.1.0安装脚本,可使用source 文件名进行安装,安装前可以根据自己的个人需求改动脚本,安装到指定的目录文件夹下,安装前先将安装包拷贝到对应目录的文件夹下。

    freewrap651

    FreeWrap的可执行程序本身就是一个shell,如果修改了可执行程序的名字,在windows下把freeWrap修改为shell,再运行则是一个tcl/tk的shell。 FreeWrap使用非常方便,就是一条命令,语法参考如下。 语法:...

    Shell 文件包含

    Shell 文件包含 和其他语言一样,Shell 也可以包含外部脚本。这样可以很方便的封装一些公用的代码作为一个独立的文件。 Shell 文件包含的语法格式如下: . filename # 注意点号(.)和文件名中间有一空格 或 source ...

    xshell常用命令.docx

    tomcat ./catalina.sh stop ./catalina.sh start 17.命令top——查看cpu、内存 18.命令pwd——查看当前路径 19.命令tar——打包、解包 tar xvf/cvf 解压/打包tar文件 20.命令tail——查看文件详细信息 tail -f aaa....

    最全的oracle常用命令大全.txt

    SQL&gt;select text from all_source where owner=user and name=upper('&plsql_name'); 三、查看数据库的SQL 1、查看表空间的名称及大小 select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size ...

    2009 达内Unix学习笔记

    cd ../.. 向上两级。 cd /user/s0807 从绝对路径去到某目录。 cd ~/s0807 直接进入主目录下的某目录(“cd ~"相当于主目录的路径的简写)。 ls 显示当前目录的所有目录和文件。 用法 ls [-...

    处理Shell脚本中带有空格的变量(bash脚本)

    本篇主要介绍bash脚本中对于含空格文件...通过set -x将执行信息打印出来,发现可以执行到,但是执行过程提示找不到对应的文件名,mv对应的source文件并不是原本的文件名,通过对比发现原来是文件名中含有空格,导致在f

    zsh-fuzzy-match:由VIM CtrlPCommand-T插件启发的ZLE小部件,用于以交互方式查找内容

    此项目的Alpha版软件尚未维护,我不建议您使用它。 这里是更好的选择:## Zsh-Fuzzy-Match Zsh-Fuzzy-Match是一个... 当小部件运行时,键入文件名的一部分,它将列出zsh glob匹配项,可以使用箭头选择该匹配项。 如果

    新版Android开发教程.rar

    � 采用了对有限内存、电池和 CPU 优化过的虚拟机 Dalvik , Android 的运行速度比想象的要快很多。 � 运营商(中国移动等)的大力支持,产业链条的热捧。 � 良好的盈利模式( 3/7 开),产业链条的各方:运营商、...

    Linux 收集的从入门到高级的教程

    只是文件名变成乱码,内容还没多大问题)。但是貌似不能取消发布的资源啊。我只好提醒大家一下。我会另外在上传一份好的到时候在贴在这里 搜集了n天才找到的资料费了不少精力所以定的分有些高请见谅,但我能保证...

Global site tag (gtag.js) - Google Analytics