shell脚本学习-文件包含

跟着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(或者是其他路径)

原文地址:https://www.cnblogs.com/hanweiblog/p/9479571.html

时间: 2024-12-18 06:56:23

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

笔记——shell脚本学习指南

<shell脚本学习指南>机械工业出版 ISBN 987-7-111-25504-8 第2章 2.4 初级陷阱 1.当今的系统,对#!这一行的长度限制从63到1024个字符都有,尽量不要超过64个字符. 2.在某些系统上,命令行部分包含了命令的完整路径名称.不过有些系统却不是这样:命令行的部分会原封不动地传递给被引用的程序. 3.别在选项之后放置任何空白,因为空白也会跟着选项一起传递给被引用的程序. 4.你需要知道解释其的完整路径名称.这可以用来规避可移植问题,因为不同的厂商可能将同样的东西放

shell脚本学习与总结

shell脚本学习总结,东西很多,供初学者参考. shell脚本是区分大小写的. 2.Unix特殊字符有: ( ; $ ? & * () [] ` ' " + 使用其时要进行转义() 3.Shell的注释以#开头 4.函数的定义Function fuction_name(){ Command to execute} 调用时直接用function_name. 5.控制结构 1)If...then语句 If [ test_command ]    Then    Commandsfi2)If

shell脚本—根据文件个数定时备份

最近在了解Jenkins时,出现这样一个问题:linux ext3系统目录下的子目录个数不能超过31998个(参考:http://www.xshell.net/linux/1267.html),但jenkins在不停的编译版本时,有时候几个小时就创建了30000多个日志文件夹的目录,从而要随时的清理此文件夹下的目录.于是就写了个脚本来实现自动备份功能.由于很久没有接触过shell,所以花了一天来实现,比较汗颜!主要是对shell的格式,语法之类的不是很了解,在网上找了些资料,边写边调试!废话不多

shell脚本学习笔记系列--1

一.学好shell编程的知识储备 1.相关Linux系统命令应用: 2.Vi/vim 编辑器的熟练使用,相关客户端软件的设置: 3.基础的服务,系统服务ntp,crond,网络服务:nfs,rsync,inotify,sersync,ssh,lanmp等. 补充:清空日志的三种方法: 1)echo  " " > filename.log 2)>filename.log 3)cat  /dev/null > filename.log 注:工作中有的时候不能删除(日志)文

shell脚本学习指南

以下八点不敢说就能成为你shell脚本学习指南de全部,至少可以让你编写出可靠的shell脚本. 1. 指定bash shell 脚本的第一行,#!之后应该是什么? 如果拿这个问题去问别人,不同的人的回答可能各不相同.我见过/usr/bin/env bash,也见过/bin/bash,还有/usr/bin/bash,还有/bin/sh,还有/usr/bin/env sh.这算是编程界的“’茴’字四种写法”了. 在多数情况下,以上五种写法都是等价的.但是,写过程序的人都知道:“少数情况”里往往隐藏

shell 脚本学习笔记--函数

一.定义格式 [function] 函数名() { 命令表 } 二.调用方法 先定义,后使用,直接输入函数名,不需要圆括号() 三.函数参数传递方法 可以利用位置参数或者变量进行传递 #! /bin/bash# myfirst.sh testFunction() { echo "$1,$2" #位置参数传递参数 echo "$val1,$val2" #变量传递参数 } val1="test1" val2="test2" tes

使用shell脚本清空文件

使用shell脚本清空文件 在最近的项目中,会生成很多日志文件,所以需要写一个脚本来手动清空它们,下面提供几种典型方法. 方法1 代码 #!/bin/bash ##方法1 echo "" > $1 echo "$1 cleaned up." 运行截图 说明 我想大家应该注意到了文件其实并没有真正被清空,而是有一个空行. 方法2 代码 #!/bin/bash ##方法2 : > $1 echo "$1 cleaned up." 运行截图

(转)shell脚本之文件测试操作符及整数比较符

shell脚本之文件测试操作符及整数比较符 原文:http://www.cnblogs.com/Steward-Xu/p/6722592.html 一.文件测试操作符: 在书写测试表达式是,可以使用一下的文件测试操作符. 更多的参数可以help test或者man bash 二.字符串测试操作符: 字符串测试操作符的作用:比较两个字符串是否相同.字符长度是否为0,字符串是否为null(注:bash区分长度字符串和空字符串) "="比较两个字符串是否相同,与"=="等

shell 脚本学习(一)

一.vi编辑器的常用指令 1.命令行模式 x   #删除一个字符 dd #删除一整行 2.插入模式 i #在光标前插入内容 o   #在当前行之下新开一行 3.底行模式 x 或者 wq  #保存退出 q! #退出不保存 set nu #显示行数 /   #搜索内容 二.常见得shell的解释器 # !/bin/bash # !/bin/ksh # !/bin/bsh # !/bin/sh 注意:shell一定得有解释器吗? 不一定! 三  shell 脚本的文件权限与脚本执行 文件权限:- rw