博客
关于我
shell知识点:脚本执行方法
阅读量:146 次
发布时间:2019-02-27

本文共 1051 字,大约阅读时间需要 3 分钟。

1. Shell脚本执行

在使用Shell脚本时,确保脚本能够正常执行需要注意以下几点:

  • 脚本可执行性

    • 如果脚本文件没有可执行权限(如文件开头没有#!/bin/bash#!/sh),需要预先为脚本文件赋予可执行权限。可以使用以下命令:
    chmod u+x script-name

    或者使用更宽松的权限设置:

    chmod 755 script-name
    • 可以通过两种方式执行脚本:
    bash script-name   # 或 sh script-name./script-name     # 前提是脚本所在目录是当前工作目录
  • 使用source.执行脚本

    • source script-name. script-name 可将脚本的函数和变量环境传递给当前的shell环境。
    source test.sh   # 或 . test.sh
    • 这两种方法的区别在于source.的兼容性。source支持所有Bash脚本,而.仅适用于Bash脚本。
  • 理解不同执行方式

    • 图1展示了source./script.sh之间的区别。
    • 图2展示了bash script.shsh script.sh之间的差异。
  • 2. Shell脚本后台运行

    在实际应用中,特别是在需要长时间运行脚本的情况下,将脚本后台执行可以节省资源,并允许继续使用终端。

  • 使用nohup

    • nohup可以将输出重定向到文件,并在后台运行脚本。
    nohup sh test.sh > out.txt &
    • out.txt 为输出日志文件。
  • 直接使用sh

    • 也可以直接使用sh命令将脚本后台运行并重定向输出。
    sh test.sh > & out.txt &
  • 3. 脚本后台执行的知识点
    功能 用途
    sh脚本 将脚本后台执行
    Ctrl + c 停止当前脚本任务
    Ctrl + z 暂停当前脚本任务
    bg 将当前脚本后台执行
    fg 将当前脚本前台执行
    • 使用`jobs`可以列出当前后台正在运行的任务。 ```bash [root@localhost scripts]# jobs [1]- 运行中 sh jobs.sh & [2]+ 运行中 sh jobs.sh & ```
    • 使用`fg`可以将后台任务调至前台执行。 ```bash [root@localhost scripts]# fg 1 sh jobs.sh ```
    • 使用`nohub`可以将程序后台运行。 ```bash nohup sh test.sh > out.txt & ```

    转载地址:http://fgvd.baihongyu.com/

    你可能感兴趣的文章
    pandas改变一列值(通过apply)
    查看>>
    Pandas数据分析的环境准备
    查看>>
    Pandas数据可视化怎么做?用实战案例告诉你!
    查看>>
    Pandas数据处理与分析教程:从基础到实战
    查看>>
    Pandas数据结构之DataFrame常见操作
    查看>>
    pandas整合多份csv文件
    查看>>
    pandas某一列转数组list
    查看>>
    Pandas模块,我觉得掌握这些就够用了!
    查看>>
    Pandas玩转文本处理!
    查看>>
    SpringBoot 整合 Mybatis Plus 实现基本CRUD功能
    查看>>
    pandas的to_sql方法中使用if_exists=‘replace‘
    查看>>
    Springboot ppt转pdf——aspose方式
    查看>>
    pandas读取parquet报错
    查看>>
    pandas读取数据用来深度学习
    查看>>
    Pandas进阶大神!从0到100你只差这篇文章!
    查看>>
    spring5-介绍Spring框架
    查看>>
    pandas,python - 如何在时间序列中选择特定时间
    查看>>
    Spring 框架之 AOP 原理深度剖析
    查看>>
    Pandas:如何按列元素的组合分组,以指示基于不同列的值的同现?
    查看>>
    Pandas:将一列与数据帧的所有其他列进行比较
    查看>>