linux system 执行shell脚本传参数的问题。。。

c++程序调用shell脚本,并向shell传入参数,shell脚本利用ffmpeg批量切割视频文件 任务:在linux平台下多次调用ffmpeg来切割多个视频 思考与难点:既然需要多次调用命令行命令ffmpeg,自然而然想到需要写一个shell脚本在c++程序中调用这个脚本就行了,但是问题并没有这么简单。c++程序中如何调用shell脚本?该怎么向shell脚本传入参数呢?shell脚本又是怎样来接受参数的 1、c++程序中如何调用shell脚本? c++程序中调用shell脚本的三种方式 ... 阅读详情

问题:

我写的shell程序传入的参数是
s1 s2都是字符串。
s1是 -P 22 /home/
s2是/home

这样在程序中,直接system调用的话,会出现只把-P 22分别给了s1,s2,怎么处理这个问题,让-P 22 /home/
传给s1,/home传给s2?


解决方法:

使用system调用的话,必须使用字符串;

如下:
char str[1024];
char a1[] = "-P 22 /home/";
char a2[] = "/home";
sprintf(str, "a.sh \"%s\" \"%s\"", a1, a2);
system(str);

这样就可以了;

实验验证:

a1.sh

#/bin/bash
#ls |wc -l
echo change_pppoe.sh '$1='$1--'$2'=$2


a1.c

#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#define MAX 1024
#define PATH "~/a/home/a1.sh"

int main()
{
     FILE *fp;
     char buffer[MAX];
     sprintf(buffer, "~/a/home/a1.sh \"i am a girl!\" \"this is\"");
     printf("%s\n", buffer);
     system(buffer);
}

输出:
[root@bogon home]# ./a1
~/a/home/a1.sh "i am a girl!" "this is"
change_pppoe.sh $1=i am a girl!--$2=this is

验证完全正确


在Python中执行Linux Shell脚本详解 随着 Python 的增长和普及,目前它已经成为自动化各种任务,包括执行 shell 脚本的主要工具。这篇文章将详细描述如何在 Python 中执行 shell 脚本,并提供丰富的示例帮助你理解和实践。 阅读详情

相关推荐

linux shel相关-python代码打开终端执行shell

linux shell脚本中打开另一个终端并在新终端中执行shell脚本 gnome-terminal -t “title-name” -x bash -c “sh ./run.sh;exec bash;” -t 为打开终端的标题,便于区分。 -x 后面的为要在打开的终端中执行的脚本,根据需要自己修改就行了。 最后的exec bash;是让打开的终端在执行完脚本后不关闭。 ...

_V_ 2462

Pycharm 中使用os.system()、subprocess等调用shell命令出现sh:l:XXX not found错误

Pycharm 中使用os.system()、subprocess等调用shell命令出现sh:l:XXX not found 从终端启动pycharm就可以了,具体怎么从终端启动pycharm,另一篇博客有所叙述 出现这个问题的原因基本上是由于你的pycharm没有经由terminal,而是从快捷方式(如app)或者其他的方法打开,这种打开方法,pycharm不会去读取bashrc中的环境变量,当然也就找不到某些不在系统底层环境中的命令了. ...

kongshaohao的博客 2414

MediaCodec视频解码流程详解及参考demo

本文主要讲解mediacodec的视频解码流程,及demo参考例子。

分享音视频技术 7872

python使用os.system执行Linux shell命令

使用os.system执行Linux shell 命令

烟花易冷 4230

gesp c++ 五级知识点

gesp c++ 五级知识点

MMD.然大大 2009

Maven

是一款自动化构建工具,专注于Java项目的构建、依赖的管理。

weixin_58738870的博客 2163

C++调用shell脚本并传递参数

c++中调用shell脚本的两种方式 1. system() 2. popen()

qq_45467732的博客 3564

【知识点总结】电路原理 第一讲

大家好,从今天起,我将开始更新自上大学以来所学到的各种知识,之所以选择更新它们是因为最近我一直在收拾整理自己自上大学以来所收获到的各种知识,看着那厚厚一沓的书本心里不由得犯愁。如果我想找到特定的知识,那岂不是得翻到猴年马月。俗话说得好,下雨天打鞋子,闲着也是闲着,为此我设置一个专栏,将知识点一一分类总结,目的在于更好的整理所学的知识。本人学艺不精,有一些知识点地方可能存在瑕疵,希望各位大佬可以多多指教。以下是本篇文章正文内容虚断:一般通用性运算放大器的正反向输入端之间的电阻非常非常的大。

weixin_51130221的博客 4万+

Linux 笔记--system 函数执行shell指令

一、system函数介绍system 函数执行shell指令。功能:①执行指定的shell指令②执行文件(文件具有执行权限)中的指令头文件:#include<stdlib.h>函数原型:intsystem(constchar*command);官方介绍:DESCRIPTION The system() library function uses fork(2...

weixin_46158019的博客 829

MicroCap声学仿真介绍(一)

5-频率上下限选择,需要注意的是,第一个数字是上限,第二个数字是下限,如果填反了,会有报错提示;下三角可以选择“Auto”、“linear”、“log”和“list”,设置的是频率点之间的距离和频率点的数量。Component是用来选择部件的模块,如上图所示,声学仿真常用到的是“Electroacoustic Macros AC”、“Electroacoustic Macros TR”、“NXP Transducers”以及“NXP HD components”。3是声学部件,是声学仿真中常用的部件。

山无忧的博客 5091

数仓建模—数据治理框架选型

全名主要亮点覆盖面最广:从数据治理、架构、质量、安全到元数据、主数据、数据仓库等等,几乎所有数据管理主题都能在DMBOK里找到相应章节。概念权威统一:帮助组织建立通用术语和知识基础,减少“部门之间说法不一致”的沟通成本。适用场景:如果你所在公司(或团队)正准备系统梳理数据管理的方方面面,DMBOK是一份非常全面的指导手册,尤其适合培养新人或为整个组织统一认知。需要注意:DMBOK偏“知识指引”,不直接提供成熟度模型或实施路线图。想要落地,还需要结合其他评估模型或项目管理方法。小案例举例:某。

2401_84052244的博客 4743

windows10中简单的dos环境操作

按下windows+R组合键,输入cmd回车 ASSOC          显示或修改文件扩展名关联。 ATTRIB         显示或更改文件属性。 BREAK          设置或清除扩展式 CTRL+C 检查。 BCDEDIT        设置启动数据库中的属性以控制启动加载。 CACLS          显示或修改文件的访问控制列表(ACL)。 CALL

grizzly_bear的博客 1105

DC/DC开关电源学习笔记(十三)Buck-Boost升降压电路工作原理

Buck-Boost电路是一种能够实现输出电压高于或低于输入电压的DC-DC变换器,且输出电压极性与输入电压相反。它结合了Buck(降压)和Boost(升压)两种拓扑的特点,广泛应用于需要灵活电压调整的场合,如电池供电设备、LED驱动和工业控制系统。本文将从电路结构、工作原理、关键公式推导及实际应用等方面进行详细分析。

小幽余生不加糖 3504

linux脚本名带参数执行,linux system 执行shell脚本传参数的问题。。。

问题:我写的shell程序传入的参数是 s1 s2都是字符串。 s1是 -P 22 /home/ s2是/home 这样在程序中,直接system调用的话,会出现只把-P 22分别给了s1,s2,怎么处理这个问题,让-P 22 /home/ 传给s1,/home传给s2?解决方法:使用system调用的话,必须使用字符串;如下:char str[1024];char a1[] = "-P 22 ...

weixin_35697297的博客 676

Unity之如何接入NPOI 快速读取Excel

NPOI是指构建在POI 3.x版本之上的一个程序,NPOI可以在没有安装Office的情况下对Word或Excel文档进行读写操作。 NPOI是一个开源的C#读写Excel、WORD等微软OLE2组件文档的项目

TxNet 4395

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

system()执行和shell脚本的优劣

以下是 C 语言system()移动文件与 Shell 脚本移动文件的效率对比分析及原因解析:system()会调用fork()创建子进程,然后在子进程中执行指定的命令。这意味着每次调用system("mv ...")都会产生一次进程切换的开销。如果移动11个文件,就需要调用11次system(),每次都会产生这样的开销,这可能累积起来影响效率。而直接使用Shell脚本移动文件,Shell本身是一个解释器,会在单次进程中执行所有的命令。

weixin_57672347的博客 1007

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Linux中C语言执行shell脚本的方法

主要是exec函数簇和system函数,其中需要注意的是,exec函数簇的函数执行成功后是无返回的,一般需要和fork()函数同时使用。在使用时需要另外的fork一个进程。 exec函数簇: 函数原型: #include &lt;unistd.h&gt; extern char **environ; int execl(const char *path, const char *ar...

仗劍走天涯 1万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

linux c执行shell脚本,如何在C/C++中调用Shell脚本

缘起在Linux平台下开发程序时,经常要处理一些锁碎的事情,比如删除某个目录下符合某种特征的文件,安装程序到某个目录下,打包备份一个程序,这些在Linux中很容易用shell来处理。在开发后台程序时,也经常要处理程序的安装、升级、备份,通常这些功能用shell脚本实现。所以不可避免的,要在程序中调用shell命令或shell脚本。之前考虑过这个问题,但没有深究。最近在维护一个项目时,要在C++程序...

weixin_36240214的博客 1742

Linux shell脚本入门:Linux Upskill Challenge自动化任务编程基础

Linux shell脚本是系统管理和自动化任务的强大工具,通过编写简单的脚本文件,你可以将日常操作自动化,提高工作效率并减少人为错误。本文将基于Linux Upskill Challenge项目的核心内容,带你快速掌握shell脚本编程的基础知识和实用技巧。 ## 为什么学习shell脚本? 在Linux系统中,命令行操作是管理员的日常工作。将常用命令组合成脚本具有以下优势: - **节省

gitblog_00807的博客 984

通过sudo解决php执行shell脚本的权限问题

由于以前在虚拟机中每次都是以root用户身份登录和进行操作,所以基本都没有用到sudo,但是最近项目需要要进行这么个事:通过浏览器访问php网页,php网页里会调用执行linux下的一个脚本。本来这个事很简单的,但是我在实际操作的时候,发现每次通过浏览器访问时,脚本都没有被执行,而我在终端里面通过命令行执行php网页确又是没有任何问题的,当时就觉得很差异,后来仔细想了想,通过浏览器访问和直接在终端

张脑完 8524

linux可执行脚本,如何在Linux中从C执行Shell脚本?

如何在Linux中从C执行Shell脚本?如何在Linux中从C执行Shell脚本?Jan Deinhard asked 2020-02-11T14:07:48Z6个解决方案48 votes这取决于您要对脚本(或要运行的任何其他程序)执行的操作。如果只想运行脚本pipe是最简单的方法,但是它也做一些其他事情,包括运行shell并使其运行命令(在大多数* nix下为/ bin / sh)。如果要通过...

weixin_34653651的博客 253

php system 命令,在PHP项目中利用system函数执行shell命令

摘要:在php项目开发中,如果能够在项目内执行shell命令,将可以实现更多的功能;此外,如果可以用具有同php相同功能的shell命令来替代,也可以提升项目的性能和效率。而php的system函数就可以实现在php中执行shell命令。 在php项目开发中,如果能够在项目内执行shell命令,将可以实现更多的功能;此外,如果可以用具有同php相同功能的shell命令来替代,也可以提升项目的...

weixin_34582773的博客 1758

如何在C/C++中调用Shell脚本

如何在C/C++中调用Shell脚本 缘起 在Linux平台下开发程序时,经常要处理一些锁碎的事情,比如删除某个目录下符合某种特征的文件,安装程序到某个目录下,打包备份一个程序,这些在Linux中很容易用shell来处理。在开发后台程序时,也经常要处理程序的安装、升级、备份,通常这些功能用shell脚本实现。所以不可避免的,要在程序中调用shell命令或shell脚本。之前考虑过这个问题,但没有深究。最近在维护一个项目时,要在C++程序中调用shell脚本来实现程序的升级和备份,所以花时间研究了一下,遂成本

勤学如春起之苗,不见其增,日有所长! 辍学如磨刀之石,不见其损,日有所亏! 4648

linux system popen,执行shell命令的popen和system函数封装

linux下执行shell命令的popen和system函数封装:#include #include #include #include #include int shell_popen(const char * cmd){if(!cmd){printf("shell_popen cmd is NULL!\n");return -1;}printf("shell_popen : %s\n",cmd...

weixin_39684454的博客 276

linux 应用层,执行shell脚本命令

linux 应用层,执行shell脚本命令 1、system 如:system("./root/ko/reloadko.sh"); 在我的根文件系统下,存在一个脚本文件,reloadko.sh,重新卸载,加载音频驱动。 这个脚本在root/ko目录下,当然,这些ko驱动也要放在ko目录下,否则,运行不了,找不到。 或下面的命令: hisi的支持的对gpio操作的shell命令 system("himm 0x12345678 0"); system函数: 函数原型: #include <stdlib

rjszcb的博客 749
上一篇: c语言中调用shell脚本返回值问题分析
下一篇: 如何在Linux操作系统查看文件创建时间
夏天__
博客等级 码龄15年 42粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值