脚本接收参数,执行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…

应用案例——楼宇对讲、可视门铃芯片组成分析

语音通话芯片&#xff1a;D34018,D34118,D5020,D31101; D34018 单片电话机通话电路&#xff0c;合并了必 需的放大器、衰减器和几种控制 功能&#xff0c;包括发送和接收衰减器、 背景噪声电平检测系统和一个衰 减器控制系统&#xff0c;对发送和接收电 平好于背景噪声做…

git的使用 笔记1

GIT git的使用 使用git提交的两步 第一步&#xff1a;是使用 git add 把文件添加进去&#xff0c;实际上就是把文件添加到暂存区。第二步&#xff1a;使用git commit提交更改&#xff0c;实际上就是把暂存区的所有内容提交到当前分支上。 .git 跟踪管理版本的目录 创建版本库…

阶段十-分布式-Redis01

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

【Kubernetes 】Kubernetes 网络之 Ingress 配置详解

一、ingress 在Kubernetes集群中,Ingress作为集群内服务对外暴露的访问接入点,几乎承载着集群内服务访问的所有流量。Ingress是Kubernetes中的一个资源对象,用来管理集群外部访问集群内部服务的方式。可以通过Ingress资源来配置不同的转发规则,从而实现根据不同的规则设置访…

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

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

vue动态添加数据

1,先声明一个数组为响应式的&#xff0c;里面有一些数据 const tableData ref([{sex: 女,name: 姓名1,birthday:0512},{sex: 女,name: 姓名2,birthday:0314},{sex: 男,name: 姓名3,birthday:1012},{sex: 女,name: 姓名4,birthday:0915}, ]); 我这里用的是表格的&#xff0c;…

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

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

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

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

CentOS快速安装Mysql5.7(Alibaba Cloud Linux兼容)

1、安装 在线下载 http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm 下载rpm安装包 [roottheo bin]# cd /usr/local [roottheo local]# wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm安装rpm [roottheo local]# rpm -iv…

关于一个web站点的欢迎页面

- 什么是一个web站点的欢迎页面&#xff1f; - 对于一个webapp来说&#xff0c;我们是可以设置它的欢迎页面的。 - 设置了欢迎页面之后&#xff0c;当你访问这个webapp的时候&#xff0c;或者访问这个web站点的时候&#xff0c;没有指定任何“资源路径”&#xff0c;这个时候…

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

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

SpringSecurity结合knife4j实现swagger文档

&#x1f341; 作者&#xff1a;知识浅谈&#xff0c;CSDN签约讲师&#xff0c;CSDN博客专家&#xff0c;华为云云享专家&#xff0c;阿里云专家博主 &#x1f4cc; 擅长领域&#xff1a;全栈工程师、爬虫、ACM算法 &#x1f492; 公众号&#xff1a;知识浅谈 &#x1f525;网站…

关键字: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…

基于Java教师信息管理系统

基于Java的教师信息管理系统是一个用于管理教师信息的软件系统。该系统采用Java编程语言&#xff0c;利用JSP、Servlet等技术进行开发&#xff0c;并使用MySQL数据库进行数据存储和处理。 系统功能主要包括&#xff1a; 1、教师信息录入&#xff1a;管理员可以录入新教师信息…

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 从外部访问容器应…

MYSQL语句 | find_in_set()

FIND_IN_SET() 是 MySQL 中的一个字符串函数&#xff0c;用于在逗号分隔的字符串列表中查找指定字符串的位置。 它的语法如下&#xff1a; FIND_IN_SET(search_string, string_list)search_string: 要搜索的字符串。string_list: 逗号分隔的字符串列表。 该函数返回一个整数…