博客
关于我
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/

    你可能感兴趣的文章
    Numpy 入门
    查看>>
    NumPy 库详细介绍-ChatGPT4o作答
    查看>>
    NumPy 或 Pandas:将数组类型保持为整数,同时具有 NaN 值
    查看>>
    numpy 或 scipy 有哪些可能的计算可以返回 NaN?
    查看>>
    numpy 数组 dtype 在 Windows 10 64 位机器中默认为 int32
    查看>>
    numpy 数组与矩阵的乘法理解
    查看>>
    NumPy 数组拼接方法-ChatGPT4o作答
    查看>>
    numpy 用法
    查看>>
    Numpy 科学计算库详解
    查看>>
    Numpy.fft.fft和numpy.fft.fftfreq有什么不同
    查看>>
    numpy.linalg.norm(求范数)
    查看>>
    Numpy.ndarray对象不可调用
    查看>>
    Numpy.VisibleDeproationWarning:从不整齐的嵌套序列创建ndarray
    查看>>
    Numpy:按多个条件过滤行?
    查看>>
    Numpy:条件总和
    查看>>
    numpy、cv2等操作图片基本操作
    查看>>
    numpy中的argsort的用法
    查看>>
    NumPy中的精度:比较数字时的问题
    查看>>
    numpy判断对应位置是否相等,all、any的使用
    查看>>
    Numpy多项式.Polynomial.fit()给出的系数与多项式.Polyfit()不同
    查看>>