gpt4 book ai didi

perl - 将参数从 shell 脚本传递给 perl 程序不保留空格

转载 作者:行者123 更新时间:2023-12-03 23:19:23 32 4
gpt4 key购买 nike

我有一个 perl 脚本 test.pl,它从命令行读取参数

#!/usr/bin/perl -w  
for( @ARGV ) { print( "$_\n" ) } ;

当我在命令行上传递诸如“a b”“c d”e 之类的参数时,这很有效
结果是:
a b
c d
e

如果我声明一个变量
X='"a b" "c d" e'

然后运行
test.pl $X

我得到
"a
b"
"c
d"
e

我需要从各种 shell 脚本运行 perl 脚本作为辅助函数,参数由这些脚本计算。
参数计数不是固定的,所以我必须将它作为列表传递。
唉,我找不到让 perl 程序根据需要处理我的参数的方法。
我曾想过通过文件传递参数,但是从命令行手动调用 perl 脚本变得很尴尬。
如何让 perl 脚本保留参数中的空格?

最佳答案

如果您使用 bash,您可能会考虑使用 array variable保存参数以防止在将变量代入 test.pl 时丢失信息命令调用:

declare -a X=("a b" "c d" e)
test.pl "${X[@]}"

如果有帮助,您可以逐个构建数组:
X=("a b")
X+=("c d")
X+=("e")

关于perl - 将参数从 shell 脚本传递给 perl 程序不保留空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41242179/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com