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

如何获取正在运行的Perl脚本的路径和名称(C中的argv [0])

在Perl中,可以使用特殊变量$0来获取正在运行的Perl脚本的路径和名称,类似于C语言中的argv0。$0包含了当前脚本的完整路径和名称。

以下是获取正在运行的Perl脚本的路径和名称的示例代码:

代码语言:perl
复制
my $script_path = $0;
print "正在运行的Perl脚本的路径和名称:$script_path\n";

这段代码将打印出正在运行的Perl脚本的路径和名称。

在Perl中,还可以使用模块File::Basename来获取脚本的路径和名称的各个部分,例如目录路径和文件名。以下是使用File::Basename模块的示例代码:

代码语言:perl
复制
use File::Basename;

my $script_path = $0;
my ($script_name, $script_dir) = fileparse($script_path);

print "正在运行的Perl脚本的路径:$script_dir\n";
print "正在运行的Perl脚本的名称:$script_name\n";

这段代码将打印出正在运行的Perl脚本的路径和名称的各个部分。

推荐的腾讯云相关产品:腾讯云函数计算(SCF)。腾讯云函数计算是一种事件驱动的无服务器计算服务,可以让您无需管理服务器即可运行代码。您可以将Perl脚本部署为云函数,并通过事件触发来执行脚本。腾讯云函数计算提供了高可用性、弹性扩展、按需付费等优势,适用于各种场景,如Web应用、数据处理、定时任务等。

腾讯云函数计算产品介绍链接地址:https://cloud.tencent.com/product/scf

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

相关·内容

如何获取当前正在执行脚本绝对路径

dirname $0 最近在看脚本时候经常发现有“dirname $0”这样一种表述,很是不解。.../bin/bash cd `dirname $0` echo `pwd` 切到/home/zwang/1/2/3/4路径下,运行test.sh后就位于脚本所在目录并输出路径了。...现在我们回头来把这个脚本拆开来理解一下 `` 表示执行引号内命令 $0 表示当前执行脚本文件名 dirname $0 表示获取当前执行脚本路径 这样一来就能明白dirname $0如何获取当前执行脚本路径了吧...$( ) `` 在这里需要补充$( ) ``不同。 二者都是返回括号命令结果,是用来作命令替换,即先完成引号里命令行,然后将其结果替换出来,再重组成新命令行。.../bin/bash basepath=$(cd `dirname $0`; pwd) echo $basepath 此时输出结果是脚本所在路径,但如果我换一种命令替换方式 #!

1.8K20
  • Perl语言程序应用(资料汇总版)

    Perl语言最初是为文件体系处理而创作一种多用途语言,Perl试图填补低级语言(如CC++或汇编语言)高级语言(如shell编程)之间空白,使其既满足快速编程,又具有灵活文本处理功能。...②for控制结构 Perl语言中for循环其他语言如C、R类似,相比while循环更加完善,包含关键字(for)、三个控制条件(初始化、条件、递归变化)模块,语句结构如下所示: for (初始化;...⑶表达式修饰符 为了使脚本更加简洁,Perl将控制结构简化为修饰符放在表达式语句后面,来控制该表达式运行,常见的如if、unless、while、until、foreach修饰符,如下所示: print...在use引用模块时,如果模块名称包含::双冒号,该双冒号将作为路径分隔符,相当于Linux下/,当然这里前面省略了@INC数组包含默认搜索路径。.../perl -w use warnings; use strict; open (FILE,"<$ARGV[0]") or die "can't open file $ARGV[0]"; open (OUT

    3.6K30

    在 Shell 中转换 Python 正则表达式

    /usr/bin/env python​# 脚本用于获取 iTunes 所有流派​import re,sys,sets​## 从互联网上找到代码,用于处理流派名称 HTML 实体def unescape...他可能会遍历库每个音轨以获取所有流派,但这是一个非常耗时过程,而且在构建播放列表时他已做了一次。因此,他正在寻找替代方案。...由于 AppleScript 允许他运行 shell 脚本并捕获结果,他想象他可以使用某种类型 shell 命令来完成同样操作,比如 grep、perl,或其他命令。...他 *nix 命令行技能非常生疏,他正在寻找一些指导。总之,他希望找到一种将以上 Python 代码转换成可以直接从 shell 调用并获得类似结果方法。...最后,为什么不完全用 Python 编写整个脚本呢?因为它具有更好开发工具用于调试,并且运行速度更快。如果用户运行是 Leopard,那么他预装了 Python 2.5.1。

    12610

    Perl语言入门系列之三:文件输入与输出

    在上一篇文章我介绍了基本输入与输出方法,通过键盘与屏幕实现用户与脚本交互,但是为了完成更复杂任务,输入与输出往往需要直接调用文件数据。...,也可以在脚本强制指定文件。...: ⑷文件句柄 文件句柄(filehandle)就是程序里代表Perl进程与外界之间输入输出(I/O)名称,也即外界数据在Perl里面的代称,从而实现类似于Bash里面的数据流定向功能,让Perl...为Perl存储系统内置错误信息变量,运行上面代码,结果如下所示: 由于我们根本没输入file.txt这个文件,所以这里给出报错“No such file…”,这里die函数会给出发生错误脚本名称及行号...} "…" print $rocks_fh, "…"; #打印变量$rocks_fh内容字符串到标准输出 下面为文件句柄在Perl程序使用示例: open FILE1, '<', "$ARGV[

    2.4K20

    ASM 翻译系列第三十二弹:自制数据抽取小工具

    ASM磁盘定位抽取一个Oracleblock,为了让这件事做起来不那么复杂,我又写了一个perl脚本find_block.pl来简化整个操作,只需要提供数据文件名称需要提取block,这个脚本就可以输出从...find_block.pl find_block.pl是一个perl脚本脚本里集成了dd或kfed命令来从ASM磁盘抽取一个块,脚本可以在LinuxUnixASM版本下工作,且不管是单实例还是RAC...在集群环境下,这个脚本可以运行在任意节点上,在运行脚本前,请检查ASM环境变量,确定ORACLE_SID, ORACLE_HOME, LD_LIBRARY_PATH设定正确,而且对于10G11GR1...,切换到ASM环境,然后运行perl脚本: $ $ORACLE_HOME/perl/bin/perl find_block.pl +DATA/CDB/0548068A10AB14DEE053E273BB0A46D1....,-] $ Find any block find_block.pl用来从ASM磁盘组任何一个文件抽取块,不仅仅是数据文件,为了一乐,我对控制文件控制文件上一个随机运行这个脚本: $ $ORACLE_HOME

    1.4K100

    蓝桥ROS机器人之现代C++学习笔记第 8 章 文件系统

    库提供了可移植工具来查询操作路径、文件目录。...该库动机是需要在 C++ 程序执行可移植类似脚本操作。其目的不是与 Python、Perl 或 shell 语言竞争,而是在 C++ 已经是首选语言时提供可移植文件系统操作。...C++ 标准委员会接受了在技术报告 2 包含 Boost.Filesystem 提案 N1975。...如果对该库函数调用引入了文件系统竞争,即当多个线程、进程或计算机交叉访问修改文件系统同一对象时,则行为未定义。 库范围定义 文件:保存数据文件系统对象,可以写入、读取或两者兼而有之。...允许字符、区分大小写、最大长度不允许名称是实现定义名称“。” (点)“..”(点-点)在库级别具有特殊含义。 路径:标识文件元素序列。

    67120

    将PythonR整合进一个数据分析流程

    sys模块包含了系统具体参数函数,在这里,我们只对 argv属性感兴趣。这个argv属性是所有被传递到当前正在执行脚本参数列表。表第一个元素是正在被执行脚本完整路径。...接下来,我们将讨论如何在RPython中直接调用并在内存输出。...我们人为降低了每个案例中分析结果重要性,以便把重点放在机器是如何实现过程上。 R脚本范例 我们简单R脚本例子要从命令行获取一系列数字并返回最大值。...此外,这些参数首先必须总是正在执行脚本路径。 最后一个困难可能是R脚本路径名称空格处理引起。...解决这一问题最简单方法是为全路径名称加上双引号,然后用单引号封装此字符串,这样,R保留参数本身双引号。 下面的代码,给出在R 执行 Python 脚本实例。

    2.4K80

    将PythonR整合进一个数据分析流程

    sys模块包含了系统具体参数函数,在这里,我们只对 argv属性感兴趣。这个argv属性是所有被传递到当前正在执行脚本参数列表。表第 一个元素是正在被执行脚本完整路径。...接下来,我们将讨论如何在RPython中直接调用并在内存输出。...我们人为降低了每个案例中分析结果重要性,以便把重点放在机器是如何实现过程上。 R脚本范例 我们简单R脚本例子要从命令行获取一系列数字并返回最大值。...此外,这些参数首先必须总是正在执行脚本路径。 最后一个困难可能是R脚本路径名称空格处理引起。...解决这一问题最简单方法是为全路径名称加上双引号,然后用单引号封装此字符串,这样,R保留参数本身双引号。 下面的代码,给出在R 执行 Python 脚本实例。

    3.1K80

    SVN工具分析

    ,以Windows为例,支持批处理(.bat)、可执行文件(.exe)、以及一些类似于perl、python等脚本 服务端脚本存放位置: 在创建好版本库以后,会在版本库路径下有一个hooks目录,...REVISION 更新或提交完成后版本库版本 ERROR 指到包含错误信息文件路径, 如果没有错误的话,文件将是空 CWD 脚本正在运行工作目录,设置为所有受影响路径公用根目录....参数DEPTH,参数传入是3,意思是无穷大深度 参数MESSAGEFILE, 参数传入路径C:\Users\maozg\AppData\Local\Temp\svn4D31.tmp 打开该文件查看...最后一个参数CWD为脚本正在运行工作目录,设置为所有受影响路径公用根目录 D:\GTJ2018_Operating_Copy\GTJ2018_YY_Copy 传入是我在提交时候目录 意思是我在哪个目录点击提交操作...= 0; i < argc; ++i) { string str = argv[i]; outFile << str << endl; } outFile.close(); return

    2.3K00

    Python基础教程(四)

    sys.argv #获取命令行参数列表,第一个元素是程序本身 sys.exit(n) #退出Python程序,exit(0)表示正常退出。...#当前正在运行Python解释器具体实现,比如CPython sys.thread_info #当前线程信息 上面是sys模块所有语法,我们看看就够了,了解下sys.argvsys.path...就足够了 sys.argv是一个脚本执行参数列表,列表第一个元素是脚本名称,从第二个元素开始才是真正参数。...print(sys.argv[0]) print(sys.argv[1]) 运行: # python script.py argv1 sys.py argv1 sys.path path是一个目录列表...()os.path.isdir()函数分别检验给出路径是一个文件还是目录 os.path.existe()函数用来检验给出路径是否真地存在 类特别方法 名称 说明 init(self,...)

    72030

    Linux下MPI安装与vscode配置

    然后配置安装路径,cd到解压文件夹,我解压文件夹名称为mpich-3.4.3,所以我先cd mpich-3.4.3 ,然后输入....yyy mpigcc xxx.c -o yyy 然后运行可执行文件,需要先cd到可执行文件路径下,yyy 是你可执行文件夹名字,千万不能漏掉 ./, 前面的参数 4 表示分配4个进程并行运行 mpirun...MPI_Init(&argc, &argv) Fortran版本调用时不用加任何参数,而CC++需要将main函数里两个参数传进去,因此在写main函数主程序时,应该加上这两个形参。...4.MPI_COMM_SIZE 该函数是获取该通信域内总进程数,如果通信域为MP_COMM_WORLD,即获取总进程数,使用方法MPI_COMM_RANK相近。...在CC++,status变量类型为MPI_Status,分别有三个域,可以通过status.MPI_SOURCE,status.MPI_TAGstatus.MPI_ERROR方式调用这三个信息

    10.1K20

    MIT 6.S081 Lab Two -- 系统调用

    如果在掩码设置了系统调用编号,则必须修改xv6内核,以便在每个系统调用即将返回时打印出一行。 该行应该包含进程id、系统调用名称返回值; 您不需要打印系统调用参数。...---- Sysinfo(moderate) YOUR JOB: 在这个作业,您将添加一个系统调用sysinfo,它收集有关正在运行系统信息。...提示: 在MakefileUPROGS添加$U/_sysinfotest 当运行make qemu时,user/sysinfotest.c将会编译失败,遵循上一个作业一样步骤添加sysinfo系统调用...sysinfo需要将一个struct sysinfo复制回用户空间; 请参阅sys_fstat()(kernel/sysfile.c)filestat()(kernel/file.c)以获取如何使用copyout...要获取空闲内存量,请在kernel/kalloc.c添加一个函数 要获取进程数,请在kernel/proc.c添加一个函数 ---- 实验解析 本实验在暴露给用户user库已经提供好了相关sinfo

    43340

    PHP$_SERVER详解参数&说明

    $_SERVER['argv'] 1、cli模式(命令行)下,第一个参数$_SERVER['argv'][0]是脚本名,其余是传递给脚本参数 2、web网页模式下 在web页模式下必须在php.ini...$_SERVER参数详解 $_SERVER['PHP_SELF'] #当前正在执行脚本文件名,与 document root相关。 $_SERVER['argv'] #传递给该脚本参数。...$_SERVER['SERVER_NAME'] #当前运行脚本所在服务器主机名称。 $_SERVER['SERVER_SOFTWARE'] #服务器标识字串,在响应请求时头部给出。...$_SERVER['QUERY_STRING'] #查询(query)字符串。 $_SERVER['DOCUMENT_ROOT'] #当前运行脚本所在文档根目录。在服务器配置文件定义。...$_SERVER['PATH_TRANSLATED'] #当前脚本所在文件系统(不是文档根目录)基本路径。 $_SERVER['SCRIPT_NAME'] #包含当前脚本路径

    1.7K40

    攻防世界web进阶区i-got-id-200超详解

    对正常上传文件进行修改,可以达到读取任意文件目的: 漏洞分析 这里大佬告诉我们要利用@ARGV这个全局变量 首先要了解PerlARGV全局特殊文件句柄 ARGV:遍历数组变量@ARGV中所有文件名特殊文件句柄...@ARGV:是个全局数组特殊变量,传给脚本命令行参数列表 Perl 会将 perl 命令行参数列表放入到数组 @ARGV ,而默认情况下,这些命令行参数是 Perl 数据输入源,也就是 说Perl...这里可以参考C语言argv{}数组,但不同是, Perl语言@ARGV第一个变量就是参数,而不是文件名。 Param() 函数会返回一个列表,但只有第一个文件会被放到变量。...这里我们利用以上信息构造,加入新文件列表,删除filename,文件内容写入ARGV 那么后端执行,就会把$file值换为ARGV,也就成了上述test.pl内容,会把从命令行里读取到参数,当作文件路径找到并输出.../ 命令会发现没有返回信息 因为,/etc/passwd本身就是文件,后端代码找到并输出返回在html标签 而/bin/bash 一旦被访问输出,就是bash运行环境,整个语句输出结果在shell缓冲区里

    1.7K10

    一款短小精致SSH后门分析

    0x01. 正文 1. 后门简介 这个ssh 后门伪装成一个perl脚本,名为sshd,位于/usr/sbin/sshd , 将系统原先sshd 移到/usr/bin下 sshd后门源码: #!...22 (这样后门perl脚本STDIN就是socket了), 且这个socket源端口为31334 这行命令等价于 socat -TCP4:10.1.100.3:22,sourceport=31334...,而是重新在子进程重新运行自身,也就是/usr/sbin/sshd (就是OpenSSH自身二进制文件) ,所以用户连接是被重新运行/usr/sbin/sshd 实例给处理了。...(要想了解更深入原理,需要去查看OpenSSH源码了) sshd.c 部分截图 ? 默认重新执行自身标识是为1 4. OpenSSH 为什么在子进程重新运行自身?...0x02. 总结 其实这款后门也比较好发现,首先正常sshd 文件是ELF格式,而后门是纯文本脚本,使用file 命令就可以发现 ?

    2.6K50
    领券