1#!/usr/bin/perl 2 3# Test t0000..t9999.sh for non portable shell scripts 4# This script can be called with one or more filenames as parameters 5 6use strict; 7use warnings; 8 9my$exit_code=0; 10 11sub err { 12my$msg=shift; 13print"$ARGV:$.: error:$msg:$_\n"; 14$exit_code=1; 15} 16 17while(<>) { 18chomp; 19/^\s*sed\s+-i/and err 'sed -i is not portable'; 20/^\s*echo\s+-n/and err 'echo -n is not portable (please use printf)'; 21/^\s*declare\s+/and err 'arrays/declare not portable'; 22/^\s*[^#]\s*which\s/and err 'which is not portable (please use type)'; 23/test\s+[^=]*==/and err '"test a == b" is not portable (please use =)'; 24# this resets our $. for each file 25close ARGV ifeof; 26} 27exit$exit_code;