脚本接收参数,执行shell指令

洗礼

上午开完会,5个小时内丧失思考行动能力,10个小时内不敢说话,深刻把握会议精神,反省自己。因为经常用到脚本执行任务,所以记录一下一些常用的脚本接收参数,执行shell指令。

python脚本

Python脚本是一段使用Python编写的可执行代码。它是一系列Python语句和表达式的集合,可以按顺序执行,完成特定的任务或实现特定的功能。Python脚本可以包含变量定义、函数定义、条件语句、循环、文件操作、数据处理、网络通信等各种Python语法和功能。脚本通常以.py为文件扩展名,并且可以在Python解释器或命令行中运行。Python脚本的优点之一是它的简洁性和可读性。Python的语法设计旨在提供易于理解和编写的代码结构,使得Python脚本易于编写、调试和维护。使用Python脚本,你可以完成各种任务,包括数据处理和分析、自动化任务、Web开发、机器学习、科学计算等。你可以使用文本编辑器编写Python脚本,然后使用Python解释器执行它们。

1.执行shell命令

执行一条ls指令:

import subprocess# 要执行的cp命令
command = "ls"# 使用subprocess模块执行cp命令
result = subprocess.run(command, shell=True, capture_output=True, text=True)# 打印命令的输出结果
print("Output:", result.stdout)# 打印命令的返回码
print("Return Code:", result.returncode)

在这里插入图片描述

2.接收一个参数

import sys# 检查是否至少有两个参数(脚本名称和至少一个用户提供的参数)
if len(sys.argv) == 2:# 第一个参数是脚本的名称,所以真正的参数从第二个开始given_argument = sys.argv[1]print("Given Argument:", given_argument)
else:print("Please check the argument numbers.")

在这里插入图片描述

shell脚本

Shell脚本是一种用于编写和执行命令序列的脚本语言。它是在操作系统的命令行界面(也称为shell)中运行的一系列命令的集合。Shell脚本使用的是特定的Shell语言,例如Bash(Bourne Again Shell)、sh(Bourne Shell)、csh(C Shell)等。这些Shell语言提供了一组命令、控制结构、变量和函数,用于编写脚本以完成特定的任务。Shell脚本通常以纯文本文件的形式存在,并以.sh为文件扩展名。可以通过在命令行中执行脚本文件来运行Shell脚本。Shell脚本可以用于自动化任务、批处理、系统管理、数据处理、文件操作等各种任务。它们允许用户以脚本的形式将一系列命令和操作组合在一起,并可以根据需要进行参数化和定制。

1.执行shell指令

#!/bin/bashecho "Hello,World!"ls /opt/program/python/process

在这里插入图片描述

2.接收参数

#!/bin/bashecho "第一个参数为:$1"
echo "第二个参数为:$2"

在这里插入图片描述

3.举个例子

#!/bin/bash# 检查是否提供了参数
if [ $# -eq 0 ]; thenecho "Usage: $0 <darshan-logfile>"exit 1elif [ $# -gt 1 ]; thenecho "The number of parameters is greater than 1."else# 使用第一个参数#echo "The provided parameter is: $1"(darshan-parser "$1" > "$1.txt")
fi

在这里插入图片描述

使用脚本的优势

  • 自动化任务: 脚本使得可以自动执行一系列命令和操作,无需手动干预。这对于定期执行任务、批处理处理文件、自动备份等工作非常有用。

  • 提高效率: 通过将一系列命令封装到脚本中,你可以通过简单地运行脚本来完成一项复杂的任务,提高了效率。

  • 可重复性: 脚本确保任务以一致的方式执行,减少了人为错误的风险,并提高了任务的可重复性。

  • 简化复杂任务: 对于涉及多个步骤、条件和变量的复杂任务,脚本提供了一种结构化和可管理的方式来处理。

  • 批量处理: 脚本可以轻松处理大量数据、文件、目录等,实现批量处理和操作。

  • 日志和错误处理: 通过在脚本中实现日志记录和错误处理,你可以更容易地诊断和修复问题。

  • 跨平台兼容性: 脚本通常是跨平台的,只要目标系统支持相应的解释器(例如,Bash、Python、Perl等),脚本就可以在不同的操作系统上运行。

  • 版本控制: 脚本可以被纳入版本控制系统,使得对脚本的修改、更新和回滚更加方便。

  • 简化部署: 脚本可用于自动化应用程序和系统的部署,确保环境的一致性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/597078.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vercel部署Gemini pro

一、注册一个vercel账号&#xff08;这个东西类似于第三方的github pages&#xff0c;能部署github中的项目&#xff09; 二、注册结束后&#xff0c;填写github的账号&#xff08;需要事先在该github账号中fork一个gemini的repository&#xff09; 三、babaohuang/GeminiPro…

阶段十-分布式-Redis01

第一章 Redis入门 1.1 节 什么是NoSql型数据库 NoSQL ,泛指非关系型的数据库, NoSQL Not Only SQL,它可以作为关系型数据库的良好补充。 NoSQL 不依赖业务逻辑方式存储&#xff0c;而以简单的key-value模式存储。因此大大的增加了数据库的扩展能力。NoSQL与SQL数据库区别对比如…

CMake入门教程【核心篇】包含目录(include_directories)

&#x1f608;「CSDN主页」&#xff1a;传送门 &#x1f608;「Bilibil首页」&#xff1a;传送门 &#x1f608;「本专栏容」&#xff1a;CMake入门教程 &#x1f608;「动动你的小手」&#xff1a;点赞&#x1f44d;收藏⭐️评论&#x1f4dd; 文章目录 1. 基本用法2. 添加单个…

快手推荐算法工程师三面回顾

快手三次技术面试一次HR面试的简单回顾&#xff0c;希望对大家有所启发。 一面 面试官一上来就让写算法题&#xff0c;第一个是计算岛屿数量&#xff0c;第二个是最长回文字串。 然后就是介绍自己的论文。对于论文的工作&#xff0c;面试官只是在问关于论文的问题&#xff0…

【PCB专题】Allegro封装更新焊盘

在PCB封装的绘制中&#xff0c;有时会出现需要更新焊盘的情况。比如在制作封装的过程中发现焊盘做的不对而使用PAD_Designer重新更新了焊盘。 那在PCB中如何更新已经修改过的焊盘呢&#xff1f; 打开封装&#xff0c;选择Tools->Padstack->Refresh... 选择Refresh all …

中国FinOps现状调查报告(2023)》亮点解读

今年以来&#xff0c;我们举办了多期FinOps的专题分享&#xff0c;邀请了美图、腾讯、B站、趣丸、知乎等厂商和行业专家&#xff0c;分享他们在FinOps领域的经验。我们也发现越来越多的人对FinOps产生了浓厚的兴趣&#xff0c;而且FinOps的成熟度也在逐渐提升。 降本增效&…

关键字:instanceof关键字

在 Java 中&#xff0c;instanceof关键字用于检查一个对象是否是某个特定类或其子类的实例。它的语法如下&#xff1a; 其中&#xff0c;Object是要检查的对象&#xff0c;Class是要检查的类或接口。 instanceof关键字的返回值是一个布尔值&#xff0c;如果对象Object是类Cla…

Docker介绍、常用命令、项目部署

什么是Docker 简单说&#xff1a;Docker就是一个虚拟机&#xff0c;专业说&#xff1a;它是一个开源的容器平台。它和我们常用的VMware有很多相似的地方。 名词解释 镜像/images 由本体打包出来的文件。并不是文件本身&#xff0c;但是具有该文件的功能。举个不太贴切的例子&…

Android Matrix剪切clipPath缩放scale图片postTranslate圆形放大镜,Kotlin(2)

Android Matrix剪切clipPath缩放scale图片postTranslate圆形放大镜&#xff0c;Kotlin&#xff08;2&#xff09; 在 Android Matrix剪切clipPath缩放scale图片postTranslate圆形放大镜&#xff0c;Kotlin&#xff08;1&#xff09; Android Matrix剪切clipPath缩放scale图片po…

LCR 174. 寻找二叉搜索树中的目标节点

解题思路&#xff1a; 二叉搜索树一般采用中序遍历&#xff08;从小到大排列&#xff09;。 class Solution {int res, cnt;public int findTargetNode(TreeNode root, int cnt) {this.cnt cnt;dfs(root);return res;}void dfs(TreeNode root) {if(root null) return;dfs(ro…

Docker 入门 ------容器互通以及Dockerfile

1. 端口映射以及容器互联 Docker 除了通过网络访问&#xff0c;还提供了两种很方便的功能来满足服务访问的基本需求&#xff1a; 允许映射容器内应用的服务端口到本地宿主主机互联机制实现多个容器间通过容器名来快速访问 1.1 容器映射实现访问容器 1.1.1 从外部访问容器应…

Python 标准库中的 csv 包

0. Abstract 官方文档很罗嗦&#xff0c;长篇大论例子少。本文将举例说明 csv 包的用法&#xff0c;然后补充一些必要的说明。 1.0 CSV 文件 CSV(Comma-Separated Values,逗号分隔值)文件是一种常见的以纯文本形式存储数据的文件格式。它使用逗号作为字段之间的分隔符&#…

解决docker容器内无法连接宿主redis

背景 小程序的发短信服务挂了&#xff0c;随查看日志&#xff0c;该报错日志如下 Error 111 connecting to 127.0.0.1:6379. Connection refused. 6379是监听redis服务的端口&#xff0c;那大概是redis出错了。 首先查看了redis是否正常启动&#xff0c;检查出服务正常。 由于小…

Flappy Bird QDN PyTorch博客 - 代码解读

Flappy Bird QDN PyTorch博客 - 代码解读 介绍环境配置项目目录结构QDN算法重要函数解读preprocess(observation)DeepNetWork(nn.Module)BirdDQN类主程序部分 介绍 在本博客中&#xff0c;我们将介绍如何使用QDN&#xff08;Quantile Dueling Network&#xff09;算法&#xf…

【Mybatis】我抄袭了Mybatis,手写一套MyMybatis框架:编写一个引入MyMybatis框架的正常项目

上一篇文章中&#xff0c;我们学习了使用mybatis框架连接mysql。在这篇文章中&#xff0c;我们将聚焦于我们的调用方&#xff0c;即相应的实际项目&#xff0c;其中包含了对mymybatis框架的引用。以一个常见而又典型的例子来说明这一点——制作一款学生管理系统&#xff08;伪&…

部署清华ChatGLM-6B(Linux版)

引言 前段时间,清华公布了中英双语对话模型 ChatGLM-6B,具有60亿的参数,初具问答和对话功能。最!最!最重要的是它能够支持私有化部署,大部分实验室的服务器基本上都能跑起来。因为条件特殊,实验室网络不通,那么如何进行离线部署呢? 「部署环境」:CUDA Version 11.0,…

Maven简介及环境搭建和基本使用(Java开发中的实用工具)

一、概述 Maven 是 Apache 软件基金会的一个开源项目,是一个优秀的项目构建工具,它 用来帮助开发者管理项目中的 jar,以及 jar 之间的依赖关系、完成项目的编译、 测试、打包和发布等工作。 Maven的相关概念 pom.xml文件&#xff1a;里面可以配置相关信息&#xff0c;指导ma…

【SpringBoot开发】之商城项目案例(沙箱支付)

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是君易--鑨&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的博客专栏《SpringBoot开发之商城项目系列》。&#x1f3af…

MySQL数据库索引优化实战

目录 一、前言 二、准备工作 2.1 用户表&#xff08;TB_USER) 2.2 商品表&#xff08;TB_SKU) 2.3 订单表&#xff08;TB_ORDER&#xff09; 三、实例分析 3.1 索引提升查询性能 3.2 多表查询 3.3 索引失效 四、总结 一、前言 在数据库的应用中&#xff0c;性能优化…

类加载机制之双亲委派模型、作用、源码、SPI打破双亲委派模型

双亲委派模型 双亲委派工作机制双亲委派的作用双亲委派的实现源码SPI打破双亲委派 应用程序是由三种类加载器相互配合&#xff0c;从而实现类加载&#xff0c;除此之外还可以加入自己定义的类的加载器。 类加载器之间的层次关系&#xff0c;称为双亲委派模型&#xff08;Parent…