跟着RUNOOB网站的教程学习的笔记

和其他语言一样,shell也可以包含外部脚本。这样可以很方便的封装一些公用的代码作为一个独立的文件。shell文件包含的语法有两种形式

  • . filename  #也就是一个英文句号后面跟着想要包含的文件名,注意中间有一个空格分开
  • source filename

实验的时候遇到一个问题,第二种文件包含的形式在sh中不能用,而这两种文件包含形式在bash中是都可以使用的

实例

创建两个shell脚本文件

test1.sh代码如下:

#!/bin/bash
# author:菜鸟教程
# url:www.runoob.com url="http://www.runoob.com"

test2.sh代码如下:

#!/bin/bash
# author:菜鸟教程
# url:www.runoob.com #使用 . 号来引用test1.sh 文件
. ./test1.sh # 或者使用以下包含文件代码
# source ./test1.sh echo "菜鸟教程官网地址:$url"

接下来,我们为test2.sh添加可执行权限并执行:

$ chmod +x test2.sh
$ ./test2.sh
菜鸟教程官网地址:http://www.runoob.com

注意:被包含的文件test1.sh不需要可执行权限

shell脚本中运行python脚本

尝试在shell脚本中运行python脚本,如果python脚本中含有shell的不合法语句的话,上面说到的两种方法就都不可以了;这可能说明了上述的方法只是针对shell脚本的调用而言的。在shell脚本里运行Python脚本也很方便,有两种方式:

  • 在shell脚本中写入python finename.py
  • 先给filename.py添加可执行权限,然后再shell脚本中写入./filename.py

说明:其实这两种方法就是再终端中运行python的两种方法,现在只是写在脚本中让它逐行执行罢了。尝试了上述的第二种方法失败了,请检查是否在python脚本的第一行加入#!/usr/bin/python(或者是其他路径)

shell脚本学习-文件包含的更多相关文章

  1. 笔记——shell脚本学习指南

    <shell脚本学习指南>机械工业出版 ISBN 987-7-111-25504-8 第2章 2.4 初级陷阱 1.当今的系统,对#!这一行的长度限制从63到1024个字符都有,尽量不要超 ...

  2. Shell脚本学习指南笔记

    Shell脚本学习指南 作者:Danbo 2015-8-3 脚本编程语言与编译型语言的差异 许多中型.大型的程序都是用编译型语言写的,例如:C.C+.Java等.这类程序只要从源代码(Source C ...

  3. shell脚本学习之6小时搞定(1)

    shell脚本学习之6小时搞定(1) 简介 Shell是一种脚本语言,那么,就必须有解释器来执行这些脚本. Unix/Linux上常见的Shell脚本解释器有bash.sh.csh.ksh等,习惯上把 ...

  4. 学习笔记之Shell脚本学习指南 & sed与awk & 正则表达式

    正则表达式_百度百科 http://baike.baidu.com/link?url=ybgDrN2WQQKN64_gu-diCqdeDqL8LQ-jiQ-ftzzPaNUa9CmgBRDNnyx50 ...

  5. shell编程之文件包含

    shell脚本也可以包含文件 格式: . filename 或者source filename 举例: a.sh #!/bin/sh calla() { echo "a.sh is call ...

  6. Shell脚本学习 - 运算符

    继续shell脚本学习.上一篇是基本数据类型和语法的总结,这一篇是运算相关的操作. 运算符 bash不支持简单的数学计算,需要依赖其他命令实现. expr可以代为实现. # 表达式一般这么写 ` + ...

  7. Shell 脚本学习资料搜集

    Shell文档 ChinaUnix上大神“網中人”总结的Shell十三问,强烈推荐,这本书讲得比较精炼,而且都是一些Shell学习中容易把握不住的一些细节难点.每一问都写得非常精彩.ChinaUnix ...

  8. 转 shell脚本学习指南

    shell脚本学习指南 以下八点不敢说就能成为你shell脚本学习指南de全部,至少可以让你编写出可靠的shell脚本. 1. 指定bashshell 脚本的第一行,#!之后应该是什么?如果拿这个问题 ...

  9. shell脚本中文件测试

    shell脚本中文件测试 author:headsen chen  2017-10-17  14:35:19 个人原创,转载请注明作者,否则 依法追究法律责任 [ -f  filename  ]   ...

随机推荐

  1. Java环境变量PATH和CLASSPATH

    Java开发中常用到环境变量的配置,下面简单介绍下Java中经常配置的环境变量:PATH和CLASSPATH. 1.PATH环境变量 1.1 作用简介 安装完JDK(Java Development ...

  2. CentOS6.3上搭建expect无交互开发环境

    1.背景 在面向shell编程时对于需要交互的场合则必须通过人工来干预,而对于这种方式是违反无人职守的原则:现在expect就解决了这个问题, Expect是一个免费的编程工具语言,用来实现自动和交互 ...

  3. http缓存策略-nginx只缓存js和css不缓存html

    使用缓存,是提升web性能最重要的方式之一. 在开发单页面应用的时候,大量的单静态资源引用都是依赖于html这个文件的.例如: <!doctype html> <html lang= ...

  4. 输入一段字符串,统计其中的数字,字母,空格,其他字符的方法 ----python---

    1.以简单的循环分支实现字符统计 str1 = input("输入字符串:") num=0;word=0;space=0;other=0; for i in str1: if i. ...

  5. curl -d中的json存在引号怎么处理?

    1\将其改写为I'\''m就可以执行 2\ curl -u elastic:mypass -X GET "localhost:9200/_analyze?pretty" -d 'a ...

  6. StringUtils.isEmpty StringUtils.isBlank

    两个方法都是判断字符是否为空的.前者是要求没有任何字符,即str==null 或 str.length()==0:后者要求是空白字符,即无意义字符.其实isBlank判断的空字符是包括了isEmpty ...

  7. PDO查询结果中文乱码

    PDO::MYSQL_ATTR_INIT_COMMAND (整数)连接到MySQL服务器时执行的命令.重新连接时会自动重新执行.请注意,此常量只能driver_options 在构建新的数据库句柄时在 ...

  8. Shell 运算相关

    一.${str} 二.变量替换 三.3种计算字符串长度的效率比较 四.(())用法 五.expr 六.bc 4种连续整数求和效率 七.条件测试 八.字符串测试

  9. java利用反射动态加载方法

    @参考文章 根据特定字符串加载相应的方法,有人用if else,有人用switch.参数少了或情况少了还好,很多方法真要命,不要紧,java反射拯救你 import java.lang.reflect ...

  10. vue.js 进行初始化遇到的关于core-js的错误@core-js/modules/es6.array.find-index]

    D:\vuejselement\workSpace\zutnlp_platform_show>cnpm install --save core-js/modules/es6.array.find ...