linux shell执行perl脚本,无法在Shell脚本中运行Perl脚本
我正在尝试从* .csh脚本中运行perl脚本,但是出现以下错误:
Can't open perl script"checkLength.perl": No such file or directory
我认为这与perl脚本的路径有关。 当不在shell脚本中调用perl脚本时,我可以很好地运行它,但是当我在cshell脚本中调用它时,不会运行perl脚本。
我用于perl脚本的shebang是:#!/ usr / bin / perl。 我检查了一下,并且perl位于那里(不在/ usr / bin / env perl中)。 我确保它是可执行的。
我是否需要编辑$ PATH才能使其正常工作? 我很困惑,因为如果我运行一个perl脚本而不在另一个csh脚本中调用它,那它就运行得很好。
调用脚本时,请检查当前的工作目录。
checkLength.perl相对于.csh脚本的路径是什么?
嗯,我不 我怎么会发现呢?
嗯,我在调用脚本之前检查了工作目录,并在perl脚本实际所在的位置之前的一个目录中搜索了perl脚本。 如果我将perl脚本的路径编辑为实际路径,那应该可以解决此问题,对吗?
是的,就这样,假设您发现了有关pwd的信息。 Perlscripts通常具有后缀.pl。
是的,我从前就知道pwd,只是从没想过要在perl脚本运行之前就使用它,只是要检查Im是否在正确的目录中。 非常感谢队友!
@nlu:请编写解决方案,以便OP可以接受
当然,针对您的问题的一个明显解决方案是仅使用脚本的完整路径。但这通常不是可取的,因为脚本会在无法完全反映原始结构的安装上制动。
因此,有两种可能性:
您可以将perl脚本放入PATH变量中包含的定义明确的位置,以便在各自用户环境下运行的任何程序都可以找到它。
或者,相对于调用脚本的位置,您有一些定义明确的位置。假设您的bash脚本位于somedir中,而perl脚本位于somedir / subdir中,那么您的调用将是subdir / perlscript.pl。然后,要独立于调用者工作目录中的可能更改,您可以确定bash脚本启动时要调用的perl脚本的当前完整路径。
一个模板是:
#!/bin/bash
FULLPATH=$(pwd)/subdir/somescript.pl
# do something else, cd ...
$FULLPATH
我假设您的Perl脚本相对于bash脚本保持在固定路径中。假设您的目录结构如下所示:
(BASEDIR)/bin/example.sh
(BASEDIR)/perl/example.pl
为了允许您从系统中的任何位置运行bash脚本,必须通过获取BASEDIR来指定Perl脚本的相对路径。
#!/bin/bash
BASEDIR=$(dirname $0)
perl $BASEDIR/../perl/example.pl
上面我们正在做的是找到您调用的bash脚本(BASEDIR / bin)的位置,然后使用bash脚本的位置作为参考来找到Perl脚本的相对位置。现在,您将可以在任何地方调用bash脚本并正常运行Perl脚本。
linux shell执行perl脚本,无法在Shell脚本中运行Perl脚本相关推荐
- flask执行python脚本_如何在Flask中运行python脚本
我有一个Flask脚本,可以创建网站并动态打印一些数据.-打印的数据应来自另一个python脚本. 我目前面临的问题是,如果我将执行python脚本的行放在执行Flask应用程序的行之前,它将运行Py ...
- android运行python脚本,在android应用程序中运行python脚本
我想得到远程安装软件的列表电脑.为了我想在我的android中使用python脚本申请.现在,我有一个python脚本,它正在远程获取已安装软件的列表电脑.但是,我不知道如何在android中支持它. ...
- linux脚本调用db2存储过程,LINUX定时执行含有DB2存储过程的SHELL脚本
<LINUX定时执行含有DB2存储过程的SHELL脚本>由会员分享,可在线阅读,更多相关<LINUX定时执行含有DB2存储过程的SHELL脚本(6页珍藏版)>请在人人文库网上搜 ...
- power python_在 Power BI Desktop 中运行 Python 脚本
在 Power BI Desktop 中运行 Python 脚本Run Python scripts in Power BI Desktop 06/02/2020 本文内容 你可以直接在 Power ...
- 如何在Outlook 2019/Office 365中运行VBA脚本邮件规则
如果你公司的邮件系统是Microsoft Exchange Server + Outlook,能在Outlook中执行VBA邮件规则,自动化处理邮件,可以节省大把的时间.自Outlook 2016开始 ...
- 批量删除PPT第一页最后页——VBS脚本,在office宏中运行即可
批量删除PPT第一页最后页--VBS脚本,在office宏中运行即可 Sub 批量删除第一页最后页() Dim ChangedCount As Integer Dim FileName As Stri ...
- vba mysql 自动化错误_在Excel中运行VBA脚本时出现自动化错误
在Excel 2007中运行VBA代码时出现自动化错误.我尝试连接到远程SQL Server数据库并将数据从Excel加载到SQL Server.在Excel中运行VBA脚本时出现自动化错误 我得到的 ...
- linux运行powershell,linux – 是否可以编写一个在bash / shell和PowerShell中运行的脚本?...
我需要创建一个集成脚本来设置一些环境变量,使用wget下载文件并运行它. 挑战在于它需要是可以在Windows PowerShell和bash / shell上运行的SAME脚本. 这是shell脚本 ...
- html 里运行php文件,如何在HTML文件中运行PHP脚本
欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 当访问一个网页时,服务器会根据文件扩展名来判断如何处理页面,一般来说,当检查到扩展名为htm或html时,服务器将文件直接 ...
- solaris perl print不输出_IC设计中的perl编程
IC设计中最常用的脚本语言就是perl了,perl以其强大的文字处理能力,使得程序员可以充分地从复制粘贴以及各种搜索替换的工作中解放出来.这里例举了几个perl在IC设计中的实际运用: (1)批量例化 ...
最新文章
- LVM的一些问题汇总 tune2fs命令
- 【学习笔记】SAP CO成本估算相关
- php中的冒泡排序实例,PHP实现冒泡排序的简单实例,php冒泡排序_PHP教程
- [深度学习] 自然语言处理--- 基于Keras Bert使用(上)
- C# 串口接收1次数据会进入2次串口接收事件serialPort1_DataReceived,第2次进入时串口缓冲区为空
- 屏幕取色工具ColorCat
- 《程序员修炼之道》读后感02
- echarts 3d地球 背面光线太暗_国内超炫裸眼3D案例鉴赏,大家更喜欢那一个!
- 安卓apk的编译与反编译
- 常用邮箱SMTP/POP3地址及端口
- 天若OCR专业版软件,现可无需联网本地使用了~
- java计算机毕业设计网络教学系统源码+系统+数据库+lw文档
- 苹果怎么登录服务器未响应,苹果 App Store 无法登陆的原因以及解决办法
- php 微信卡券源码,微信卡券投放——货架方式
- Android开发实现选择城市界面,可根据拼音、首字母进行搜索
- 为什么说php开发成本低,PHP、JSP和.NET三种语言的对比中开发成本最低的是?
- matlab 离散频域分析,离散系统频域分析及matlab实现.doc
- leaflet接入百度影像地图(leaflet篇.34)
- 关于java 操作word的几种方式
- JS exports的用法