执行脚本_执行脚本 群晖 - CSDN
精华内容
参与话题
  • 脚本的四种执行方法

    万次阅读 2018-01-18 11:12:50
    方法一:切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本:代码如下:cd /data/shell./hello.sh./的意思是说在当前的工作目录下执行hello.sh。如果不加上./,bash可能会响应找到不到hello.sh的错误...

    方法一:切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本:

    代码如下:

    cd /data/shell

    ./hello.sh

    ./的意思是说在当前的工作目录下执行hello.sh。如果不加上./,bash可能会响应找到不到hello.sh的错误信息。因为目前的工作目录(/data/shell)可能不在执行程序默认的搜索路径之列,也就是说,不在环境变量PASH的内容之中。查看PATH的内容可用 echo PASH/data/shellPASH./chmod+xchmod +x script_file

    PATH=PATH:$PWD

    $script_file

    方法二:以绝对路径的方式去执行bash shell脚本:

    代码如下:

    /data/shell/hello.sh

    方法三:直接使用bash 或sh 来执行bash shell脚本:

    代码如下:

    cd /data/shell

    bash hello.sh

    代码如下:

    cd /data/shell

    sh hello.sh

    注意,若是以方法三的方式来执行,那么,可以不必事先设定shell的执行权限,甚至都不用写shell文件中的第一行(指定bash路径)。因为方法三是将hello.sh作为参数传给sh(bash)命令来执行的。这时不是hello.sh自己来执行,而是被人家调用执行,所以不要执行权限。那么不用指定bash路径自然也好理解了啊,呵呵……。

    方法四:在当前的shell环境中执行bash shell脚本:

    代码如下:

    cd /data/shell

    . hello.sh

    代码如下:

    cd /data/shell

    source hello.sh

    几种方法的对比:
    前三种方法执行shell脚本时都是在当前shell(称为父shell)开启一个子shell环境,此shell脚本就在这个子shell环境中执行。shell脚本执行完后子shell环境随即关闭,然后又回到父shell中。而方法四则是在当前shell中执行的。

    展开全文
  • Linux中执行shell脚本的5种方法总结

    万次阅读 2019-04-01 15:25:00
    Linux中执行shell脚本的4种方法总结,即在Linux中运行shell脚本的4种方法: 方法一:切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本: 复制代码代码如下: cd /data/shell ./hello.sh ./的意思...

    Linux中执行shell脚本的4种方法总结,即在Linux中运行shell脚本的4种方法:

    方法一:切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本:

    复制代码 代码如下:

    cd /data/shell
    
    ./hello.sh


    ./的意思是说在当前的工作目录下执行hello.sh。如果不加上./,bash可能会响应找到不到hello.sh的错误信息。因为目前的工作目录 (/data/shell)可能不在执行程序默认的搜索路径之列,也就是说,不在环境变量PASH的内容之中。查看PATH的内容可用 echo $PASH 命令。现在的/data/shell就不在环境变量PASH中的,所以必须加上./才可执行。

     

    方法二:以绝对路径的方式去执行bash shell脚本:

    复制代码 代码如下:

    /data/shell/hello.sh

     

    方法三:直接使用bash 或sh 来执行bash shell脚本:

    复制代码 代码如下:

    cd /data/shell
    
    bash hello.sh


    复制代码 代码如下:

    cd /data/shell
    
    sh hello.sh


    注意,若是以方法三的方式来执行,那么,可以不必事先设定shell的执行权限,甚至都不用写shell文件中的第一行(指定bash路径)。因为方法三 是将hello.sh作为参数传给sh(bash)命令来执行的。这时不是hello.sh自己来执行,而是被人家调用执行,所以不要执行权限。那么不用 指定bash路径自然也好理解了啊,呵呵……。

     

    方法四:在当前的shell环境中执行bash shell脚本:

    复制代码 代码如下:

    cd /data/shell
    
    . hello.sh


    复制代码 代码如下:

    cd /data/shell
    
    source hello.sh


    前三种方法执行shell脚本时都是在当前shell(称为父shell)开启一个子shell环境,此shell脚本就在这个子shell环境中执行。shell脚本执行完后子shell环境随即关闭,然后又回到父shell中。而方法四则是在当前shell中执行的。

    方法五:在shell中启动另外的shell

    在运行shell脚本时候,有三种方式来调用外部的脚本,exec(exec script.sh)、source(source script.sh)、fork(./script.sh) 
    1、exec(exec /home/script.sh): 
    使用exec来调用脚本,被执行的脚本会继承当前shell的环境变量。但事实上exec产生了新的进程,他会把主shell的进程资源占用并替换脚本内容,继承了原主shell的PID号,即原主shell剩下的内容不会执行。

    2、source(source /home/script.sh)

    使用source或者“.”来调用外部脚本,不会产生新的进程,继承当前shell环境变量,而且被调用的脚本运行结束后,它拥有的环境变量和声明变量会被当前shell保留,类似将调用脚本的内容复制过来直接执行。执行完毕后原主shell继续运行。

    3、fork(/home/script.sh)

    直接运行脚本,会以当前shell为父进程,产生新的进程,并且继承主脚本的环境变量和声明变量。执行完毕后,主脚本不会保留其环境变量和声明变量。

    总结:这样来看fork最灵活,source次之,exec最诡异。

     

    查看哪个用户用的什么shell登录:

    1.echo $SHELL          #查看当前登录的用户所用的shell
    2.grep username /etc/passwd 看最後一段    #查看想要知道的用户登录所用的shell

    展开全文
  • Shell:执行脚本文件方法

    千次阅读 2018-12-21 09:55:02
    脚本文件test.sh: #!/bin/bash printf "%s\n&...另外也可以直接执行,此时脚本文件的第一行指定了调用哪个shell来执行脚本: chmod +x ./test.sh #赋予脚本文件可执行权限 ./test.sh #...

    脚本文件test.sh

    #!/bin/bash
    printf "%s\n" "hello world"
    

    可通过以下方式分别调用不同的shell执行脚本文件:

    /bin/sh test.sh
    /bin/bash test.sh
    

    另外也可以直接执行,此时脚本文件的第一行指定了调用哪个shell来执行脚本:

    chmod +x ./test.sh  #赋予脚本文件可执行权限
    ./test.sh  #直接运行脚本文件
    

    以上执行方式都是在当前shell下打开一个子shell进程执行脚本的,这样在脚本中定义的临时变量,在脚本运行完退出子shell后,不会在当前shell下生效。

    可以通过source命令在当前shell中执行脚本,这样脚本中定义的变量在脚本执行完成后不会在当前shell中失效:

    source ./test.sh
    . ./test.sh  #source命令可以简写为.命令。
    
    展开全文
  • Shell 脚本执行方式通常有如下三种: (1)bash script-name 或者 sh script-name;(2)path/script-name或者./script-name;(3)sourcescript-name或者. script-name。下面,分别介绍下这三种方式的特点: (1...

    Shell 脚本的执行方式通常有如下三种

    (1)bash script-name 或者 sh script-name;(2)path/script-name或者./script-name;(3)sourcescript-name或者. script-name。下面,分别介绍下这三种方式的特点:

    (1)bash script-name或者sh script-name

    这是当脚本文件本身没有可执行权限(即文件权限属性x位为-号)时常使用的方法,或者脚本文件开头没有指定解释器时需要使用的方法推荐使用这种方法。

    (2)path/script-name或者./script-name

    指在当前路径下执行脚本(脚本需要有执行权限),需要将脚本文件的权限改为可执行(即文件权限属性为x位)。具体方法为:chmod a+x script-name。然后通过执行脚本绝对路径或者相对路径就可以执行脚本了。
    注意:在生产环境中,运维人员由于忘记为该脚本设置可执行权限,然后直接使用,导致出错。因此,推荐第一种 bashscript-name。

    (3)source script-name或者. script-name

    source或者“.”命令的功能是:读入脚本并执行脚本,即在当前Shell中执行source或“.”加载并执行的相关脚本文件的命令及语句,而不是产生一个子Shell来执行文件中的命令。

    注意:这是和其他几种执行shell方式的最大不同。

    举个栗子:

    新建一个文件test_sh.sh,不给它赋予任何可执行的权限x。


    编辑内容如下:


    文件以及文件中内容与常见的shell不同之处在于,这里的文件没有赋予可执行权限以及在文件内容中的首行中没有添加#!/bin/bash。我们现在用上述介绍的几种方式来测试下效果。

    第二种方式./script-name,执行效果如下:


    报权限拒绝,Permission denied,此时,我们只要更改文件的属性为可执行即可。

    执行第一种bash script-name,效果如下:


    可以成功执行,输出:hello。但是,我们输入命令:echo $name,发现如下:


    name的值是空的。不难理解,bash script-name是产生了一个子进程shell,而我们当前的操作还在父shel中因此得不到该变量值。

    执行第三种方法. test_sh.sh,效果如下:


    可以成功的输出变量的值。这是因为source script-name和. script-name是将script-name中的内容直接加载到当前的shell,因此能够输出当前变量的值。

    刚才第二种方式我们执行失败,现在我们通过chmod a+x script-name,然后再次执行上述命令,查看效果:


    注意:该种方式也是产生了一个子进程Shell,因此echo $name仍然找不到该变量。

    补充知识点:

    一个规范的Shell脚本在第一行会指出由哪个程序(解释器)来执行脚本中的内容,这一行内容在Linux bash的编程一般为:

    #!/bin/bash

    #!/bin/sh

    注意:

    (1)在Shell中如果一行的第一个字母是#,则是注释,但是上面两个是写在第一行,所以不是脚本注释行,如果写在某个命令之后,则变成注释行。

    (2)sh为bash的软链接,大多数情况下,脚本的开头使用“#!/bin/bash”和“#!/bin/sh”是没有区别的,但更规范的写法是在脚本的开头使用“#!/bin/bash”。


                </div>
    
    展开全文
  • linux下定时执行脚本

    千次阅读 2018-11-28 14:29:31
    1.安装crontab yum install vixie-cron yum install crontab 2.启动crontab服务 service crond start 用以下的方法启动、关闭这个cron服务:  service crond start //启动...service crond restart //...
  • 脚本执行命令实例详解

    千次阅读 2018-07-02 11:19:07
    使用linux不免要用到执行脚本,比如一个文件a.sh,我们有时会见到用. a.sh去执行,有时见到用sh a.sh去执行,或者bash a.sh,或者source a.sh,那么这两种执行脚本的方式有什么区别呢?这个问题也困惑了本人很久,今天...
  • Ubuntu 定时执行脚本

    千次阅读 2020-03-16 13:02:12
    cron是一个Linux定时执行工具,可以在无需人工干预的情况下运行作业。在Ubuntu中,cron是被默认安装并启动的。 二、例子 直接上例子,来看看怎么用。 需求:定时每天8点,自动执行保存在/root目录下hello.sh...
  • 一、F12打开调试工具,利用控制台运行JS脚本输入javascript:加上JS代码回车执行脚本二、通过浏览器收藏夹运行JS脚本以谷歌浏览器为例,新建收藏夹,网址处填写JS代码,添加收藏以后,点击图标即可执行...
  • 使用navicat运行sql脚本文件

    万次阅读 2019-01-23 17:25:12
    图解更清晰
  • 直接运行powershell时提示“无法加载文件ps1,因为在此系统中禁止执行脚本。有关详细信息,请参阅 "get-help about_signing"。 主要是由于没有权限执行脚本运行get-help about_signing 提示了解...
  • perl如何运行执行脚本

    万次阅读 2013-10-18 11:37:34
    详细的对文件夹 文本的操作可 参考 linux命令积累 新建一个文件夹 编辑hello.pl脚本 ...首先要修改脚本文件的权限为可执行 只有在perl的bin文件夹中才能直接用./hello.pl来执行 在当前目录下执行时 用perl hello.pl
  • mysql下如何执行sql脚本

    万次阅读 2020-01-21 13:50:21
    mysql下如何执行sql脚本 参考地址:mysql下如何执行sql脚本
  • 怎么用命令运行lua文本文件

    万次阅读 2017-10-28 23:23:17
    写好脚本script.lua,然后在控制台(cmd)下输入Lua script.lua, 需要Lua后边正确输入你的脚本所在的路径.
  • Linux系统中运行.sh(Shell脚本)文件

    万次阅读 2016-11-12 14:29:21
    本文介绍了在Linux下以相对路径和绝对路径运行.sh(Shell脚本)文件的方法。
  • 浏览器执行Python脚本

    万次阅读 2020-03-15 10:14:40
    https://blog.csdn.net/yzy_1996/article/details/80223053
  • python3---定时执行脚本

    千次阅读 2018-06-15 15:16:46
    python3—定时执行脚本 参考:http://www.cnblogs.com/lizm166/p/8169028.html
  • PowerShell因为在此系统中禁止执行脚本解决方法 在Powershell直接脚本时会出现: 无法加载文件 **.ps1,因为在此系统中禁止执行...Restricted 执行策略不允许任何脚本运行。 AllSigned 和 RemoteSigned 执行...
  • 终端执行python脚本 (for Mac)

    万次阅读 多人点赞 2016-06-02 19:17:47
    cd 到文件夹目录 在文件首行添加#!/usr/bin/env python ...执行脚本./filename.py 简单脚本:files.py#!/usr/bin/env python import os,sys base = '/Users/Apple/Desktop/' i = 1 for j in range(100): file_n
  • 【python】python执行shell命令或脚本

    万次阅读 2018-12-29 16:18:50
    获取命令执行的结果,但是没有命令的执行状态,这样可以将获取的结果保存起来放到list中。 commands 可以很方便的取得命令的输出(包括标准和错误输出)和执行状态位。 commands.getoutput('ls')这个方...
  • XCode中执行脚本的三种方法

    万次阅读 2013-08-02 11:02:55
    1.直接将脚本写在xCode中,传送门 2.xCode中执行已写好的.sh脚本文件,传送门
1 2 3 4 5 ... 20
收藏数 1,570,745
精华内容 628,298
关键字:

执行脚本