Subject: | dotsh: single quotes should be stripped |
Consider the following script
#!perl
require 'dotsh.pl';
use File::Temp;
my $fh = File::Temp->new;
$fh->print("test=1\n");
$fh->close;
dotsh("$fh");
use Test::More 'no_plan';
is $test, 1;
__END__
Depending on the active shell this may fail because extra single quotes appear around the value.
On a debian/linux system the following shells pass: /bin/bash and /bin/zsh
/bin/sh fails:
$ SHELL=/bin/sh perl /tmp/dotshtest.pl
not ok 1
# Failed test at /tmp/dotshtest.pl line 12.
# got: ''1''
# expected: '1'
1..1
# Looks like you failed 1 test of 1.
However, the /bin/sh on freebsd does not cause a failure.
If the value contains spaces (and maybe other special characters), then single quotes are everywhere added.