小编典典

这里有两个查询,关于使用Bash变量和运行外部命令。

Perl中有%ENV哈希,带有环境变量

perl -wE'say $ENV{PWD}'

但是,通常最好在脚本中使用等效项,因为脚本的含义可能会有所不同,或者在脚本运行时会有所变化。

更重要的是,使用shell命令会使您面临引号,shell注入和解释的各种潜在问题。例如,您显示的命令很危险,如CharlesDuffy注释中所述。原则上,最好使用Perl的丰富功能。

清醒而详尽的优势说明。

如果确实需要运行外部命令,则最好完全避免使用shell,例如,使用system的多参数形式。如果您还需要命令的输出,Perl中的各种模块都可以提供该命令。请参阅下面的链接。

如果您还需要使用外壳程序的功能,则可以使用String ::ShellQuote之类的现成工具,而不是为了正确地引用所有内容以便外壳程序接收所需的内容。

请注意,qx运算符(反引号)使用/bin/sh,这可能降级也可能不会降级为Bash。因此,如果您想要Bash,则需要system('/bin/bash','-c',@cmd)。请参阅带有示例的链接。

这是一个与问题背后的目标有关的完整例子。

程序的工作目录可能与预期不同,具体取决于启动方式。首先,它在之后发生变化chdir。我不知道您的确切意图PWD,但是在Perl中,核心Cwd::cwd和FindBin具有$RealBin,用于当前工作目录和脚本所在的目录(通常是不同的东西)。

要创建到的符号链接$path,其相对路径应位于当前工作目录之后

use warnings;

use strict;

use Cwd qw(cwd);

my $cwd = cwd;

my $path = '/first/path';

symlink($path, "$cwd/second/path") or die "Can't make a symlink: $!";

如果该路径是脚本的位置,请使用$RealBinfrom FindBin代替cwd。

请注意,使用symlink不能传递目录而不是链接名称。

2020-06-07

linux中perl的环境变量,在Perl脚本中使用Bash环境变量?相关推荐

  1. linux脚本中如何读取文件,如何在Shell脚本中逐行读取文件

    原标题:如何在Shell脚本中逐行读取文件 在这里,我们学习Shell脚本中的3种方法来逐行读取文件. 方法一.使用输入重定向 逐行读取文件的最简单方法是在while循环中使用输入重定向. 为了演示, ...

  2. linux shell 判断目录不存在,检查shell脚本中是否存在目录

    要检查shell脚本中是否存在目录,可以使用以下命令:if [ -d "$DIRECTORY" ]; then # Control will enter here if $DIRE ...

  3. Linux下rcS文件中sleep用法,对busybox工具rcS脚本中exec执行﹑后台执行和nohup执行的理解...

    因为/etc/init.d/rcS脚本在/etc/inittab中以最高优先级第一个被init程序解析并使用daemon方式启动, ::sysinit:/etc/init.d/rcS 所以这样rcS脚 ...

  4. linux shell rsync,linux – 如何在我的下面的shell脚本中使用rsync而不是scp来复制文件?...

    我正在使用scp并行使用GNU并行复制文件与我的下面的 shell脚本,它工作正常. 我不知道如何在下面的shell脚本中使用rsync代替scp.我试图看看rsync与传输速度方面的scp相比是否会 ...

  5. linux shell 读取csv文件内容,在Shell脚本中读取CSV文件,直到没有标题的行结束

    我有一个名为'readfile.csv'的文件,其中包含以下内容. Name Id VAl Number IP James,007,$500,111-111-111,111-000-000 Bond, ...

  6. shell脚本中执行命令_如何在Shell脚本中执行命令?

    shell脚本中执行命令 Shell is a command-line interpreter that allows the user to interact with the system. I ...

  7. python中第三方模块_如何在python脚本中包含第三方模块?

    我已经开始使用Python来自动化我工作中的重复任务,并且经常需要将对第三方模块的引用集成到我的脚本中.如何将这些文件直接包含在脚本中?我知道有一些方法可以在python安装文件夹(C:\Python ...

  8. linux 引用其它脚本中的变量

    前言 CentOS Linux release 7.9.2009 (Core) 引用其它脚本中的变量 a.sh var_a=zhangsan echo $var_a b.sh source a.sh ...

  9. Shell脚本中$0、$?、$!、$$、$*、$#、$@等的意义以及linux命令执行返回值代表意义

    Shell脚本中$0.$?.$!.$$.$*.$#.$@等的意义以及linux命令执行返回值意义 (1) Shell脚本中$0.$?.$!.$$.$*.$#.$@等的意义说明 1.1.简要说明 ps: ...

  10. 69:shell脚本介绍 | shell脚本结构 | 执行data命令用法 | shell脚本中变量

    2019独角兽企业重金招聘Python工程师标准>>> 1.shell脚本介绍: shell是一种脚本语言和传统的开发语言相比,会比较简单: shell有自己语法,可以支持逻辑判断. ...

最新文章

  1. 3NF分解与BCNF分解
  2. 手动将jar添加到maven仓库中
  3. html5中底部对齐怎么写,如何将页脚(div)与页面底部对齐?
  4. JavaScript:函数
  5. 2018安卓应用安全白皮书:超98%安卓应用存有安全风险
  6. php不显示内容里的图片不显示,图片显示不出来,但是数据库里有显示
  7. The word is not correctly spelled问题解决
  8. 面向对象-封装继承多态
  9. 概率论基础3----分布
  10. [Linux 基础] -- Linux 之 fstab 文件详解
  11. 计算机网络之广域网基础以及华为eNSP实验配置
  12. 数据可视化怎么操作?看完这篇你就明白了
  13. SpringBoot之下载Excel
  14. AMap(高德官方图层)
  15. 医会宝APP登录体验
  16. 2020年掘安杯网络安全技能挑战赛理论练习--问卷填...
  17. 地质勘查土质分类图片_收藏必备!自然资源部:岩石、砾质、土质、泥质统一这样划分!...
  18. 软考知识点笔记之----制订项目管理计划
  19. 成为游戏开发者的一流技巧
  20. MacOS VSCode配置c++环境

热门文章

  1. 语音备忘录怎么添加录音
  2. uTools(工具集合)
  3. 用手机蓝牙锁定计算机,Bluetooth Screen Lock——当你离开时自动锁定Mac电脑
  4. python官网无法打开--Python安装包国内镜像下载
  5. Linux0.11 文件打开open函数(五)
  6. 基于51单片机的红外循迹模块
  7. 因数和以及因数个数和问题
  8. SQL语句 合并列值 将一列的多个值合并成一行
  9. 你不必使用弱引用以避免内存泄漏
  10. jieba 同义词_中文分词库FNLP与jieba的安装与使用