Cygwin Strawberry perl @ARGV 未读取绝对路径
Cygwin Strawberry perl @ARGV not read absolute path
我在 Windows 7 机器上使用 Cygwin 工作。我将 Cygwin perl 链接到 windows strawberry perl。
10:13 PM Thu Jan 14$ ls -ltr /usr/bin/perl
lrwxrwxrwx 1 casper None 40 Nov 29 21:40 /usr/bin/perl -> /cygdrive/c/strawberry/perl/bin/perl.exe
我有一个接受命令行参数的脚本。当我输入目录路径时,它无法读取文件。
casperw@W01B6XLV /cygdrive/c/casper/DEV$ ./parseCMTA /tmp/example.txt
Error opening /tmp/example.txt - No such file or directory
我将它复制到脚本所在的相同路径,它工作得很好:
casperw@W01B6XLV /cygdrive/c/casper/DEV$ cp /tmp/example.txt .
casperw@W01B6XLV /cygdrive/c/casper/DEV$ ./parseCMTA example.txt
Short name – ORANGEJulius
GL- 7512522 ADP- 20692677
GL- 7512524 ADP- 21692677
CMTA TO MS 050
casperw@W01B6XLV /cygdrive/c/casper/DEV$ cat parseCMTA
#!/usr/bin/perl
use strict ;
use warnings ;
my $file_grab = $ARGV[0] ;
open my $CMTA_file , '<' , $file_grab or die "Error opening $file_grab - $!\n";
while (<$CMTA_file>) {
print $_ ;
}
为什么命令行数组@ARGV 不会处理文件位置的绝对路径,而是在同一目录中处理文件。绝对路径和@ARGV 数组是怎么回事?
Strawberry Perl 随后没有用 Cygwin 编译 /tmp
实际上是 C:\tmp
而不是 Cygwin 中的 space。因此,假设您给 Strawberry Perl 的任何路径都是正常的 Windows 路径(我相信 /
和 \
在 Strawberry Perl 路径中是相同的)。如果您知道 Cygwin 的 /tmp
在 Windows 中的位置,您可以使用它。
我在 Windows 7 机器上使用 Cygwin 工作。我将 Cygwin perl 链接到 windows strawberry perl。
10:13 PM Thu Jan 14$ ls -ltr /usr/bin/perl
lrwxrwxrwx 1 casper None 40 Nov 29 21:40 /usr/bin/perl -> /cygdrive/c/strawberry/perl/bin/perl.exe
我有一个接受命令行参数的脚本。当我输入目录路径时,它无法读取文件。
casperw@W01B6XLV /cygdrive/c/casper/DEV$ ./parseCMTA /tmp/example.txt
Error opening /tmp/example.txt - No such file or directory
我将它复制到脚本所在的相同路径,它工作得很好:
casperw@W01B6XLV /cygdrive/c/casper/DEV$ cp /tmp/example.txt .
casperw@W01B6XLV /cygdrive/c/casper/DEV$ ./parseCMTA example.txt
Short name – ORANGEJulius
GL- 7512522 ADP- 20692677
GL- 7512524 ADP- 21692677
CMTA TO MS 050
casperw@W01B6XLV /cygdrive/c/casper/DEV$ cat parseCMTA
#!/usr/bin/perl
use strict ;
use warnings ;
my $file_grab = $ARGV[0] ;
open my $CMTA_file , '<' , $file_grab or die "Error opening $file_grab - $!\n";
while (<$CMTA_file>) {
print $_ ;
}
为什么命令行数组@ARGV 不会处理文件位置的绝对路径,而是在同一目录中处理文件。绝对路径和@ARGV 数组是怎么回事?
Strawberry Perl 随后没有用 Cygwin 编译 /tmp
实际上是 C:\tmp
而不是 Cygwin 中的 space。因此,假设您给 Strawberry Perl 的任何路径都是正常的 Windows 路径(我相信 /
和 \
在 Strawberry Perl 路径中是相同的)。如果您知道 Cygwin 的 /tmp
在 Windows 中的位置,您可以使用它。