首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在bash脚本中,如何从使用eval命令执行的程序中获取PID?

在bash脚本中,可以使用特殊变量$!来获取使用eval命令执行的程序的PID。$!代表了最后一个在后台运行的进程的PID。eval命令用于将字符串作为命令执行,如果在eval命令后面有一个&符号,表示将该命令放入后台执行。因此,可以通过在eval命令执行后立即使用$!来获取该命令的PID。

以下是一个示例:

代码语言:bash
复制
#!/bin/bash

# 执行eval命令,并将其放入后台执行
eval "some_command" &

# 获取eval命令的PID
pid=$!

echo "PID: $pid"

在上述示例中,"some_command"是要执行的命令,通过将其放入eval命令中并使用&符号将其放入后台执行。然后,使用$!将eval命令的PID赋值给变量pid,并打印出来。

请注意,eval命令的使用需要谨慎,因为它可以执行任意的命令字符串,可能存在安全风险。在实际使用中,请确保只执行可信任的命令。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

python脚本执行shell命令方法

python脚本执行shell命令方法 最近在写python一些脚本,之前使用python都是django中使用,可能大部分内容都是偏向于后端开发方面的,最近在写一些脚本时候,发现了...使用Python处理一个shell命令或者一个执行一个shell脚本,一般情况下,有下面三种方法,下面我们来看: 第一种方法是使用os.system方法 os.system("cmd") 我们在当前目录下面创建一个...shell命令打印出来aaa.sql内容,然后下面出现数字0代表上述命令执行成功;如果我们打印bbb.sql则返回值是256,表示执行中出现了问题。...shell命令pwd时候,commands.getstatusputput返回值是0,也就是执行成功,返回结果是当前目录;当执行pwddddd时候,由于不是系统命令,所以返回结果是command...,可以得到一个脚本或者一个命令返回值和执行结果,当然,我们也可以使用下面的方法来分别校验aaa.sql文件是否存在,以及查看aaa.sql执行结果: 1[root@ /data]$python 2Python

5.3K00

使用 Bash 脚本 SAR 报告获取 CPU 和内存使用情况

大多数 Linux 管理员使用 SAR 报告监控系统性能,因为它会收集一周性能数据。但是,你可以通过更改 /etc/sysconfig/sysstat 文件轻松地将其延长到四周。...本文中,我们添加了三个 bash 脚本,它们可以帮助你一个地方轻松查看每个数据文件平均值。...脚本 1: SAR 报告获取平均 CPU 利用率 Bash 脚本bash 脚本每个数据文件收集 CPU 平均值并将其显示一个页面上。...2: SAR 报告获取平均内存利用率 Bash 脚本bash 脚本每个数据文件收集内存平均值并将其显示一个页面上。...3: SAR 报告获取 CPU 和内存平均利用率 Bash 脚本bash 脚本每个数据文件收集 CPU 和内存平均值并将其显示一个页面上。

1.9K30

Redis除了EVAL和EVALSHA之外,其他可以执行Lua脚本命令

图片除了EVAL和EVALSHA命令之外,Redis还提供了以下命令用于执行Lua脚本:SCRIPT LOAD: 将Lua脚本加载到Redis服务器,并返回一个SHA1摘要(脚本唯一标识符)。...用于将脚本预先加载到服务器,减少后续执行脚本网络传输时间。SCRIPT EXISTS: 检查指定SHA1摘要是否存在于服务器。可以用于检查脚本是否已加载到服务器。...SCRIPT FLUSH: 删除所有已加载Lua脚本。可以用于清空服务器上所有脚本。SCRIPT KILL: 终止正在执行Lua脚本。可以用于取消长时间运行脚本。...调试模式下,Redis将输出有关脚本执行过程调试信息。这些命令以及EVAL和EVALSHA命令一起,可以方便地进行Lua脚本加载、执行和管理。...通过执行Lua脚本,可以实现更复杂和灵活Redis操作。

22061

如何Bash脚本本身获得其所在目录

问: 如何Bash脚本本身获得其所在目录? 我想使用Bash脚本作为另一个应用程序启动器。我想把工作目录改为Bash脚本所在目录,以便我可以对该目录下文件进行操作,像这样: $ ....但是以相对路径方式去执行脚本时,获取目录信息是相对路径,不能满足其他需要获取绝对路径场景。 如果要获取绝对路径,可以使用如下方法: #!...测试结果如下: 另外,可以根据第一种方法结合使用 realpath 命令,也可获取脚本所在目录绝对路径: #!...为什么我不能在脚本使用"cd"来更改目录 为什么执行文件或脚本名称之前需要..../(点-斜杠),以便在bash运行它 shell脚本对编码和行尾符敏感吗

30520

SAR 报告获取平均 CPU 利用率 Bash 脚本

大多数 Linux 管理员使用 SAR 报告监控系统性能,因为它会收集一周性能数据。但是,你可以通过更改 /etc/sysconfig/sysstat 文件轻松地将其延长到四周。...如果超过 28,那么日志文件将放在多个目录,每月一个。 要将覆盖期延长至 28 天,请对 /etc/sysconfig/sysstat 文件做以下更改。...本文中,我们添加了三个 bash 脚本,它们可以帮助你一个地方轻松查看每个数据文件平均值。 这些脚本简单明了。出于测试目的,我们仅包括两个性能指标,即 CPU 和内存。...你可以修改脚本其他性能指标以满足你需求。 SAR 报告获取平均 CPU 利用率 Bash 脚本bash 脚本每个数据文件收集 CPU 平均值并将其显示一个页面上。...2: SAR 报告获取平均内存利用率 Bash 脚本

1.6K10

Bash如何字符串删除固定前缀后缀

如果模式与 parameter 扩展后末尾部分匹配,则扩展结果是 parameter 扩展后删除最短匹配模式(一个 % 情况)或最长匹配模式(%% 情况)值。...使用sed命令方法: string="hello-world" prefix="hell" suffix="ld" $ echo "$string" | sed -e "s/^$prefix//" -...e "s/$suffix$//" o-wor sed命令,^ 字符匹配以 prefix 开头文本,而结尾 匹配以 参考文档: stackoverflow question 16623835...https://www.gnu.org/software/bash/manual/bash.html#Shell-Parameter-Expansion 相关阅读: bash:-(冒号破折号)用法...Bash如何将字符串转换为小写 shell编程$(cmd) 和 `cmd` 之间有什么区别 如何Bash变量删除空白字符 更多好文请关注↓

38810

shell程序如何文件获取第n行

问: 有没有一种“规范”方式来做到这一点?我一直使用 head -n | tail -1,它可以做到这一点,但我一直想知道是否有一个Bash工具,专门文件中提取一行(或一段行)。...所谓“规范”,我指的是一个主要功能就是这样做程序。...答: 有一个可供测试文件,内容如下: 使用 sed 命令,要打印第 20 行,可写为 sed -n '20'p file.txt sed -n '20p' file.txt 测试截图如下: 要打印第...8 到第 12 行,则可用命令 sed -n '8,12'p file.txt 如果要打印第8、9行和第12行,可用命令 sed -n '8p;9p;12p' file.txt 对于行数特大文件...,为了提高处理速度,可采用类似如下命令 sed '5000000q;d' file.txt tail -n+5000000 file.txt | head -1 需要关注处理性能伙伴可以在上述命令前加上

37720

windows程序嵌入Lua脚本引擎--建立一个简易“云命令执行系统

windows程序嵌入Lua脚本引擎--使用VS IDE编译Luajit脚本引擎》开始处,我提到某公司被指责使用“云命令”暗杀一些软件。...CS体系结构,如果我们要完成某个业务需求,往往要修改二进制文件,并发布到客户端。这样,我们客户端副本将有机会去执行相关逻辑。...,我将执行获取“云端指令”和执行指令操作。...这是为了简易,如果想搞复杂,可以考虑让服务器下发地址或者直接下发命令。           我服务端保存是一个简易Lua脚本。...该脚本使用了ffi库,即让我们可以像使用C语言一样写Lua脚本,这个也是令人非常激动一点。

1.6K20

如何使用CIMplant收集远程系统数据并执行命令

注意:某些命令仍然会使用PowerShell与WMI结合方式来实现。...CIMplant使用了C#对@christruncerWMImplant项目进行了重写和功能扩展,可以帮助广大研究人员远程系统收集数据、执行命令以及提取数据等等。...该工具允许使用WMI或CIM来进行连接,并且需要目标系统本地管理员权限来执行任务操作。...工具安装 为了方便起见,广大研究人员可以直接访问该项目的【Releases页面】来获取最新构建版本,如果你想要手动构建的话,请参照下列步骤: Visual Studio中加载sln; 点击顶部菜单...cs:该文件负责初始化CIM/WMI连接,并将连接传递给应用程序进行后续操作。 cs:包含了WMI命令所有函数代码。 cs:包含了CIM(IM)命令所有函数代码。

1.2K30

ASP.NET Core应用如何设置和获取执行环境相关信息?

我们其命名也可以看出这个对象描述也是与执行环境相关信息,而它承载这些信息提下在如下四个属性成员上,它们分别表示应用名称、基路径、版本和采用.NET Framework。...ApplicationEnvironment对象来描述当前执行环境,我们需要使用到如下这个名为PlatformServices对象,它Application属性返回就是我们所需ApplicationEnvironment...至于ApplicationBasePath属性,它返回实际上是AppContextBaseDirectoryPath属性对应路径,运行时使用这个基础路径来解析被加载目标程序真实路径。...和ContentRootPath) 承载四个与执行环境相关设置,WebHostOptions对象上都具有对应属性,后者是前者数据来源。...如果我们通过Configure方法并提供了一个Action类型委托对象,那么这个委托对象对应方法被定义在哪个类型,这个类型所在程序基名称将会作为应用名称。

3.5K90

如何使用bof-launcherCC++Zig应用程序执行Beacon对象文件(BOF)

自那时起,BOF变得非常流行,因此也衍生出了Cobalt StrikeBeacon之外其他环境启动或执行BOF需求。...BOF; 5、异步BOF执行,能够单独线程启动更耗时BOF; 6、BOF进程注入,通过将其注入新进程来启动风险更大BOF; 7、完美支持Windows COFF和UNIX/Linux ELF格式...; 8、支持Linux ARM和AARCH64; 7、允许直接文件系统运行BOF文件(需配合cli4bofs工具); 8、高效灵活API用于BOF链调用; 工具下载 首先,广大研究人员需要使用下列命令将该项目源码克隆至本地...下列命令即可构建并运行测试BOF: zig build test 针对Linux操作系统,项目提供了一个专门zigupdate.sh脚本执行工具代码构建: wget https://raw.githubusercontent.com...开发和调试过程,我们可以直接文件系统来运行BOF代码。

10710

shell语法学习

14.命令行参数 许多情况下,直接从命令 shell 获取参数是有益。下面的示例演示了如何bash 执行此操作。 #!.../test.sh X=44 Y=100 Bash 它应该返回 X+Y=144。这里参数存储 “$@” 脚本使用 Linuxcut 命令获取它们。...23. Bash 脚本创建目录 使用 shell 脚本运行系统命令能力使开发人员工作效率大大提高。下面的简单示例将向您展示如何在 shell 脚本创建目录。 #!...30.解析日期和时间 下一个 bash 脚本示例将向您展示如何使用脚本处理日期和时间。同样,Linuxdate 命令用于获取必要信息,我们程序执行解析。 `#!...Bash程序暂停最后一条指令执行,直到 $time 秒,本例,用户提供了这一点。 32.wait 命令 wait 命令用于暂停 Linux bash 脚本系统进程。

1.2K40

40 个简单又有效 Linux Shell 脚本示例

*)用于匹配除 100 和 200 以外所有输入。 14、命令行参数 许多情况下,直接从命令 shell 获取参数是有益。下面的示例演示了如何bash 执行此操作。 #!...这里参数存储 “$@” 脚本使用 Linuxcut 命令获取它们。 16、连接字符串 字符串处理对于广泛现代 bash 脚本来说非常重要。...23、 Bash 脚本创建目录 使用 shell 脚本运行系统命令能力使开发人员工作效率大大提高。下面的简单示例将向您展示如何在 shell 脚本创建目录。 #!...30、解析日期和时间 下一个 bash 脚本示例将向您展示如何使用脚本处理日期和时间。同样,Linuxdate 命令用于获取必要信息,我们程序执行解析。 #!...该程序暂停最后一条指令执行,直到 $time 秒,本例,用户提供了这一点。 32、wait 命令 wait 命令用于暂停 Linux bash 脚本系统进程。

26610

编写一个可复用SpringBoot应用运维脚本

本文Shell脚本CentOS7正常运行,其他操作系统不一定适合。如果对一些基础或者原理不感兴趣可以拖到最后,直接拷贝脚本使用。...kill命令正确使用姿势。 命令nohup正确使用方式。 获取PID 一般而言,如果通过应用名称能够成功获取PID,则可以确定应用进程正在运行,否则应用进程不处于运行状态。...应用进程运行状态是基于PID判断,因此应用进程管理脚本中会多次调用获取PID命令。...通过awk '{print $2}'结果获取第二列。...Shell脚本,可以使用这种方式获取PIDPID=`ps -ef |grep redis-server |grep -v grep |awk '{print $2}'` echo $PID 但是这样会存在一个问题

54810

Shell脚本攻略02-玩转变量与环境变量

概述 变量是任何一种编程语言都必不可少组成部分,用于存放各类数据。 脚本语言通常不需要在使用变量之前声明其类型。只需要直接赋值就可以了。 Bash,每一个变量值都是字符串。...---- 理论知识 变量采用常见命名方式进行命名。当应用程序执行时,它接收一组环境变量。 可以使用env命令查看所有与终端相关环境变量。...如何获取$PID呢? 假设有一个叫做gedit应用程序正在运行。...至此之后,当前shell脚本执行任何应用程序都会继承这个变量。 我们可以按照自己需要,执行应用程序或者shell脚本中导出特定变量。..., shell会自动PATH环境变量所包含目录列表(各目录路径之间以冒号分隔)查找对应执行文件。

92810
领券