mirror of
https://git.savannah.gnu.org/git/parallel.git
synced 2024-11-26 07:57:58 +00:00
env_parallel: --env _ supported in (t)csh and pdksh.
This commit is contained in:
parent
3ba7a4646d
commit
68a48146ea
|
@ -33,7 +33,8 @@ env_parallel() {
|
||||||
# and convert a b c to (a|b|c)
|
# and convert a b c to (a|b|c)
|
||||||
# If --env not set: Match everything (.*)
|
# If --env not set: Match everything (.*)
|
||||||
local _grep_REGEXP="$(
|
local _grep_REGEXP="$(
|
||||||
perl -e 'for(@ARGV){
|
perl -e '
|
||||||
|
for(@ARGV){
|
||||||
/^_$/ and $next_is_env = 0;
|
/^_$/ and $next_is_env = 0;
|
||||||
$next_is_env and push @envvar, split/,/, $_;
|
$next_is_env and push @envvar, split/,/, $_;
|
||||||
$next_is_env = /^--env$/;
|
$next_is_env = /^--env$/;
|
||||||
|
@ -44,18 +45,27 @@ env_parallel() {
|
||||||
)"
|
)"
|
||||||
# Deal with --env _
|
# Deal with --env _
|
||||||
local _ignore_UNDERSCORE="$(
|
local _ignore_UNDERSCORE="$(
|
||||||
perl -e 'for(@ARGV){
|
perl -e '
|
||||||
|
for(@ARGV){
|
||||||
$next_is_env and push @envvar, split/,/, $_;
|
$next_is_env and push @envvar, split/,/, $_;
|
||||||
$next_is_env=/^--env$/;
|
$next_is_env=/^--env$/;
|
||||||
}
|
}
|
||||||
$underscore = grep { /^_$/ } @envvar;
|
if(grep { /^_$/ } @envvar) {
|
||||||
print $underscore ? "grep -vf $ENV{HOME}/.parallel/ignored_vars" : "cat";
|
if(not open(IN, "<", "$ENV{HOME}/.parallel/ignored_vars")) {
|
||||||
|
print STDERR "parallel: Error: ",
|
||||||
|
"Run \"parallel --record-env\" in a clean environment first.\n";
|
||||||
|
} else {
|
||||||
|
chomp(@ignored_vars = <IN>);
|
||||||
|
$vars = join "|",map { quotemeta $_ } @ignored_vars;
|
||||||
|
print $vars ? "($vars)" : "(,,nO,,VaRs,,)";
|
||||||
|
}
|
||||||
|
}
|
||||||
' -- "$@"
|
' -- "$@"
|
||||||
)"
|
)"
|
||||||
|
|
||||||
# Grep alias names
|
# Grep alias names
|
||||||
local _alias_NAMES="$(compgen -a |
|
local _alias_NAMES="$(compgen -a |
|
||||||
egrep "^${_grep_REGEXP}\$" | $_ignore_UNDERSCORE)"
|
grep -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$ )"
|
||||||
local _list_alias_BODIES="alias $_alias_NAMES"
|
local _list_alias_BODIES="alias $_alias_NAMES"
|
||||||
if [[ "$_alias_NAMES" = "" ]] ; then
|
if [[ "$_alias_NAMES" = "" ]] ; then
|
||||||
# no aliases selected
|
# no aliases selected
|
||||||
|
@ -65,7 +75,7 @@ env_parallel() {
|
||||||
|
|
||||||
# Grep function names
|
# Grep function names
|
||||||
local _function_NAMES="$(compgen -A function |
|
local _function_NAMES="$(compgen -A function |
|
||||||
egrep "^${_grep_REGEXP}\$" | $_ignore_UNDERSCORE)"
|
grep -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$ )"
|
||||||
local _list_function_BODIES="typeset -f $_function_NAMES"
|
local _list_function_BODIES="typeset -f $_function_NAMES"
|
||||||
if [[ "$_function_NAMES" = "" ]] ; then
|
if [[ "$_function_NAMES" = "" ]] ; then
|
||||||
# no functions selected
|
# no functions selected
|
||||||
|
@ -75,7 +85,7 @@ env_parallel() {
|
||||||
|
|
||||||
# Grep variable names
|
# Grep variable names
|
||||||
local _variable_NAMES="$(compgen -A variable |
|
local _variable_NAMES="$(compgen -A variable |
|
||||||
egrep "^${_grep_REGEXP}\$" | $_ignore_UNDERSCORE |
|
grep -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$ |
|
||||||
grep -vFf <(readonly) |
|
grep -vFf <(readonly) |
|
||||||
egrep -v '^(BASHOPTS|BASHPID|EUID|GROUPS|FUNCNAME|DIRSTACK|_|PIPESTATUS|PPID|SHELLOPTS|UID|USERNAME|BASH_[A-Z_]+)$')"
|
egrep -v '^(BASHOPTS|BASHPID|EUID|GROUPS|FUNCNAME|DIRSTACK|_|PIPESTATUS|PPID|SHELLOPTS|UID|USERNAME|BASH_[A-Z_]+)$')"
|
||||||
local _list_variable_VALUES="typeset -p $_variable_NAMES"
|
local _list_variable_VALUES="typeset -p $_variable_NAMES"
|
||||||
|
@ -101,17 +111,3 @@ env_parallel() {
|
||||||
`which parallel` "$@";
|
`which parallel` "$@";
|
||||||
unset PARALLEL_ENV;
|
unset PARALLEL_ENV;
|
||||||
}
|
}
|
||||||
|
|
||||||
# Supports env of 127375 bytes
|
|
||||||
#
|
|
||||||
# _env_parallel() {
|
|
||||||
# # Saving to a tempfile
|
|
||||||
# export PARALLEL_ENV=`tempfile`;
|
|
||||||
# (echo "shopt -s expand_aliases 2>/dev/null"; alias;typeset -p |
|
|
||||||
# grep -vFf <(readonly) |
|
|
||||||
# grep -v 'declare .. (GROUPS|FUNCNAME|DIRSTACK|_|PIPESTATUS|USERNAME|BASH_[A-Z_]+) ';
|
|
||||||
# typeset -f) > $PARALLEL_ENV
|
|
||||||
# `which parallel` "$@";
|
|
||||||
# rm "$PARALLEL_ENV"
|
|
||||||
# unset PARALLEL_ENV;
|
|
||||||
# }
|
|
||||||
|
|
|
@ -29,8 +29,48 @@ if ("`alias env_parallel`" == '') then
|
||||||
# Activate alias
|
# Activate alias
|
||||||
alias env_parallel 'setenv PARALLEL "\!*"; source `which env_parallel.csh`'
|
alias env_parallel 'setenv PARALLEL "\!*"; source `which env_parallel.csh`'
|
||||||
else
|
else
|
||||||
|
# Get the --env variables if set
|
||||||
|
# --env _ should be ignored
|
||||||
|
# and convert a b c to (a|b|c)
|
||||||
|
# If --env not set: Match everything (.*)
|
||||||
|
set _tMpscRIpt=`tempfile`
|
||||||
|
cat <<'EOF' > $_tMpscRIpt
|
||||||
|
#!/usr/bin/perl
|
||||||
|
|
||||||
|
for(@ARGV){
|
||||||
|
/^_$/ and $next_is_env = 0;
|
||||||
|
$next_is_env and push @envvar, split/,/, $_;
|
||||||
|
$next_is_env = /^--env$/;
|
||||||
|
}
|
||||||
|
$vars = join "|",map { quotemeta $_ } @envvar;
|
||||||
|
print $vars ? "($vars)" : "(.*)";
|
||||||
|
'EOF'
|
||||||
|
set _grep_REGEXP="`perl $_tMpscRIpt -- $PARALLEL`"
|
||||||
|
|
||||||
|
# Deal with --env _
|
||||||
|
cat <<'EOF' > $_tMpscRIpt
|
||||||
|
#!/usr/bin/perl
|
||||||
|
|
||||||
|
for(@ARGV){
|
||||||
|
$next_is_env and push @envvar, split/,/, $_;
|
||||||
|
$next_is_env=/^--env$/;
|
||||||
|
}
|
||||||
|
if(grep { /^_$/ } @envvar) {
|
||||||
|
if(not open(IN, "<", "$ENV{HOME}/.parallel/ignored_vars")) {
|
||||||
|
print STDERR "parallel: Error: ",
|
||||||
|
"Run 'parallel --record-env' in a clean environment first.\n";
|
||||||
|
} else {
|
||||||
|
chomp(@ignored_vars = <IN>);
|
||||||
|
$vars = join "|",map { quotemeta $_ } @ignored_vars;
|
||||||
|
print $vars ? "($vars)" : "(,,nO,,VaRs,,)";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
'EOF'
|
||||||
|
set _ignore_UNDERSCORE="`perl $_tMpscRIpt -- $PARALLEL`"
|
||||||
|
rm $_tMpscRIpt
|
||||||
|
|
||||||
# Get the scalar and array variable names
|
# Get the scalar and array variable names
|
||||||
set _vARnAmES=(`set | awk -e '{print $1}' |grep -v prompt2`)
|
set _vARnAmES=(`set | awk -e '{print $1}' |grep -vE '^(#|_|killring|prompt2|command)$' | grep -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$`)
|
||||||
|
|
||||||
# Make a tmpfile for the variable definitions
|
# Make a tmpfile for the variable definitions
|
||||||
set _tMpvARfILe=`tempfile`
|
set _tMpvARfILe=`tempfile`
|
||||||
|
@ -38,19 +78,20 @@ else
|
||||||
# Make a tmpfile for the variable definitions + alias
|
# Make a tmpfile for the variable definitions + alias
|
||||||
set _tMpaLLfILe=`tempfile`
|
set _tMpaLLfILe=`tempfile`
|
||||||
foreach _vARnAmE ($_vARnAmES);
|
foreach _vARnAmE ($_vARnAmES);
|
||||||
# if $?myvar && $#myvar <= 1 echo scalar_myvar=$var
|
# if not defined: next
|
||||||
eval if'($?'$_vARnAmE' && ${#'$_vARnAmE'} <= 1) echo scalar_'$_vARnAmE'="$'$_vARnAmE'"' >> $_tMpvARfILe;
|
eval if'(! $?'$_vARnAmE') continue'
|
||||||
# if $?myvar && $#myvar > 1 echo array_myvar=$var
|
# if $#myvar <= 1 echo scalar_myvar=$var
|
||||||
eval if'($?'$_vARnAmE' && ${#'$_vARnAmE'} > 1) echo array_'$_vARnAmE'="$'$_vARnAmE'"' >> $_tMpvARfILe;
|
eval if'(${#'$_vARnAmE'} <= 1) echo scalar_'$_vARnAmE'='\"\$$_vARnAmE\" >> $_tMpvARfILe;
|
||||||
|
# if $#myvar > 1 echo array_myvar=$var
|
||||||
|
eval if'(${#'$_vARnAmE'} > 1) echo array_'$_vARnAmE'="$'$_vARnAmE'"' >> $_tMpvARfILe;
|
||||||
end
|
end
|
||||||
|
unset _vARnAmE _vARnAmES
|
||||||
# shell quote variables (--plain needed due to $PARALLEL abuse)
|
# shell quote variables (--plain needed due to $PARALLEL abuse)
|
||||||
# Convert 'scalar_myvar=...' to 'set myvar=...'
|
# Convert 'scalar_myvar=...' to 'set myvar=...'
|
||||||
# Convert 'array_myvar=...' to 'set array=(...)'
|
# Convert 'array_myvar=...' to 'set array=(...)'
|
||||||
cat $_tMpvARfILe | parallel --plain --shellquote | perl -pe 's/^scalar_(\S+).=/set $1=/ or s/^array_(\S+).=(.*)/set $1=($2)/ && s/\\ / /g;' > $_tMpaLLfILe
|
cat $_tMpvARfILe | parallel --plain --shellquote | perl -pe 's/^scalar_(\S+).=/set $1=/ or s/^array_(\S+).=(.*)/set $1=($2)/ && s/\\ / /g;' > $_tMpaLLfILe
|
||||||
|
|
||||||
# Cleanup
|
# Cleanup
|
||||||
rm $_tMpvARfILe; unset _tMpvARfILe _vARnAmE _vARnAmES
|
rm $_tMpvARfILe; unset _tMpvARfILe
|
||||||
|
|
||||||
# ALIAS TO EXPORT ALIASES:
|
# ALIAS TO EXPORT ALIASES:
|
||||||
|
|
||||||
|
@ -61,8 +102,6 @@ else
|
||||||
# Quoted: s/\\047/\\047\\042\\047\\042\\047/g\;
|
# Quoted: s/\\047/\\047\\042\\047\\042\\047/g\;
|
||||||
|
|
||||||
# Remove () from second column
|
# Remove () from second column
|
||||||
# s/^(\S+)(\s+)\((.*)\)/\1\2\3/
|
|
||||||
# \047 => '
|
|
||||||
# s/^(\S+)(\s+)\((.*)\)/\1\2\3/;
|
# s/^(\S+)(\s+)\((.*)\)/\1\2\3/;
|
||||||
# Quoted: s/\^\(\\S+\)\(\\s+\)\\\(\(.\*\)\\\)/\\1\\2\\3/\;
|
# Quoted: s/\^\(\\S+\)\(\\s+\)\\\(\(.\*\)\\\)/\\1\\2\\3/\;
|
||||||
|
|
||||||
|
@ -79,7 +118,10 @@ else
|
||||||
# Prepend with "\nalias "
|
# Prepend with "\nalias "
|
||||||
# s/^/\001alias /;
|
# s/^/\001alias /;
|
||||||
# Quoted: s/\^/\\001alias\ /\;
|
# Quoted: s/\^/\\001alias\ /\;
|
||||||
alias | perl -pe s/\\047/\\047\\042\\047\\042\\047/g\;s/\^\(\\S+\)\(\\s+\)\\\(\(.\*\)\\\)/\\1\\2\\3/\;s/\^\(\\S+\)\(\\s+\)\(.\*\)/\\1\\2\\047\\3\\047/\;s/\^/\\001alias\ /\;s/\\\!/\\\\\\\!/g >> $_tMpaLLfILe
|
alias | \
|
||||||
|
grep -E "^$_grep_REGEXP" | \
|
||||||
|
grep -vE "^$_ignore_UNDERSCORE""[^_a-zA-Z]" | \
|
||||||
|
perl -pe s/\\047/\\047\\042\\047\\042\\047/g\;s/\^\(\\S+\)\(\\s+\)\\\(\(.\*\)\\\)/\\1\\2\\3/\;s/\^\(\\S+\)\(\\s+\)\(.\*\)/\\1\\2\\047\\3\\047/\;s/\^/\\001alias\ /\;s/\\\!/\\\\\\\!/g >> $_tMpaLLfILe
|
||||||
|
|
||||||
setenv PARALLEL_ENV "`cat $_tMpaLLfILe; rm $_tMpaLLfILe`";
|
setenv PARALLEL_ENV "`cat $_tMpaLLfILe; rm $_tMpaLLfILe`";
|
||||||
unset _tMpaLLfILe;
|
unset _tMpaLLfILe;
|
||||||
|
|
|
@ -44,10 +44,44 @@ function env_parallel
|
||||||
# env_parallel.fish
|
# env_parallel.fish
|
||||||
setenv PARALLEL_ENV (
|
setenv PARALLEL_ENV (
|
||||||
begin;
|
begin;
|
||||||
|
set _grep_REGEXP (
|
||||||
|
begin;
|
||||||
|
perl -e 'for(@ARGV){
|
||||||
|
/^_$/ and $next_is_env = 0;
|
||||||
|
$next_is_env and push @envvar, split/,/, $_;
|
||||||
|
$next_is_env = /^--env$/;
|
||||||
|
}
|
||||||
|
$vars = join "|",map { quotemeta $_ } @envvar;
|
||||||
|
print $vars ? "($vars)" : "(.*)";
|
||||||
|
' -- $argv;
|
||||||
|
end;
|
||||||
|
)
|
||||||
|
# Deal with --env _
|
||||||
|
set _ignore_UNDERSCORE (
|
||||||
|
begin;
|
||||||
|
perl -e '
|
||||||
|
for(@ARGV){
|
||||||
|
$next_is_env and push @envvar, split/,/, $_;
|
||||||
|
$next_is_env=/^--env$/;
|
||||||
|
}
|
||||||
|
if(grep { /^_$/ } @envvar) {
|
||||||
|
if(not open(IN, "<", "$ENV{HOME}/.parallel/ignored_vars")) {
|
||||||
|
print STDERR "parallel: Error: ",
|
||||||
|
"Run \"parallel --record-env\" in a clean environment first.\n";
|
||||||
|
} else {
|
||||||
|
chomp(@ignored_vars = <IN>);
|
||||||
|
$vars = join "|",map { quotemeta $_ } @ignored_vars;
|
||||||
|
print $vars ? "($vars)" : "(nO,VaRs)";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
' -- $argv;
|
||||||
|
end;
|
||||||
|
)
|
||||||
|
|
||||||
# Export function definitions
|
# Export function definitions
|
||||||
functions -n | perl -pe 's/,/\n/g' | while read d; functions $d; end;
|
functions -n | perl -pe 's/,/\n/g' | grep -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$ | while read d; functions $d; end;
|
||||||
# Convert scalar vars to fish \XX quoting
|
# Convert scalar vars to fish \XX quoting
|
||||||
eval (set -L | perl -ne 'chomp;
|
eval (set -L | grep -E "^$_grep_REGEXP " | grep -vE "^$_ignore_UNDERSCORE " | perl -ne 'chomp;
|
||||||
($name,$val)=split(/ /,$_,2);
|
($name,$val)=split(/ /,$_,2);
|
||||||
$name=~/^(HOME|USER|COLUMNS|FISH_VERSION|LINES|PWD|SHLVL|_|history|status|version)$/ and next;
|
$name=~/^(HOME|USER|COLUMNS|FISH_VERSION|LINES|PWD|SHLVL|_|history|status|version)$/ and next;
|
||||||
if($val=~/^'"'"'/) { next; }
|
if($val=~/^'"'"'/) { next; }
|
||||||
|
@ -55,7 +89,7 @@ function env_parallel
|
||||||
')
|
')
|
||||||
# Generate commands to set scalar variables
|
# Generate commands to set scalar variables
|
||||||
begin;
|
begin;
|
||||||
for v in (set -n);
|
for v in (set -n | grep -E "^$_grep_REGEXP\$" | grep -vE "^$_ignore_UNDERSCORE\$");
|
||||||
# Separate variables with the string: \000
|
# Separate variables with the string: \000
|
||||||
eval "for i in \$$v;
|
eval "for i in \$$v;
|
||||||
echo -n $v \$i;
|
echo -n $v \$i;
|
||||||
|
|
|
@ -25,8 +25,6 @@
|
||||||
# or write to the Free Software Foundation, Inc., 51 Franklin St,
|
# or write to the Free Software Foundation, Inc., 51 Franklin St,
|
||||||
# Fifth Floor, Boston, MA 02110-1301 USA
|
# Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
# Supports env of 127426 bytes
|
|
||||||
|
|
||||||
env_parallel() {
|
env_parallel() {
|
||||||
# env_parallel.ksh
|
# env_parallel.ksh
|
||||||
|
|
||||||
|
@ -35,7 +33,8 @@ env_parallel() {
|
||||||
# and convert a b c to (a|b|c)
|
# and convert a b c to (a|b|c)
|
||||||
# If --env not set: Match everything (.*)
|
# If --env not set: Match everything (.*)
|
||||||
_grep_REGEXP="$(
|
_grep_REGEXP="$(
|
||||||
perl -e 'for(@ARGV){
|
perl -e '
|
||||||
|
for(@ARGV){
|
||||||
/^_$/ and $next_is_env = 0;
|
/^_$/ and $next_is_env = 0;
|
||||||
$next_is_env and push @envvar, split/,/, $_;
|
$next_is_env and push @envvar, split/,/, $_;
|
||||||
$next_is_env = /^--env$/;
|
$next_is_env = /^--env$/;
|
||||||
|
@ -46,18 +45,27 @@ env_parallel() {
|
||||||
)"
|
)"
|
||||||
# Deal with --env _
|
# Deal with --env _
|
||||||
_ignore_UNDERSCORE="$(
|
_ignore_UNDERSCORE="$(
|
||||||
perl -e 'for(@ARGV){
|
perl -e '
|
||||||
|
for(@ARGV){
|
||||||
$next_is_env and push @envvar, split/,/, $_;
|
$next_is_env and push @envvar, split/,/, $_;
|
||||||
$next_is_env=/^--env$/;
|
$next_is_env=/^--env$/;
|
||||||
}
|
}
|
||||||
$underscore = grep { /^_$/ } @envvar;
|
if(grep { /^_$/ } @envvar) {
|
||||||
print $underscore ? "grep -vf $ENV{HOME}/.parallel/ignored_vars" : "cat";
|
if(not open(IN, "<", "$ENV{HOME}/.parallel/ignored_vars")) {
|
||||||
|
print STDERR "parallel: Error: ",
|
||||||
|
"Run \"parallel --record-env\" in a clean environment first.\n";
|
||||||
|
} else {
|
||||||
|
chomp(@ignored_vars = <IN>);
|
||||||
|
$vars = join "|",map { quotemeta $_ } @ignored_vars;
|
||||||
|
print $vars ? "($vars)" : "(,,nO,,VaRs,,)";
|
||||||
|
}
|
||||||
|
}
|
||||||
' -- "$@"
|
' -- "$@"
|
||||||
)"
|
)"
|
||||||
|
|
||||||
# Grep alias names
|
# Grep alias names
|
||||||
_alias_NAMES="$(alias | perl -pe 's/=.*//' |
|
_alias_NAMES="$(alias | perl -pe 's/=.*//' |
|
||||||
egrep "^${_grep_REGEXP}\$" | $_ignore_UNDERSCORE)"
|
grep -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$ )"
|
||||||
_list_alias_BODIES="alias $_alias_NAMES | perl -pe 's/^/alias /'"
|
_list_alias_BODIES="alias $_alias_NAMES | perl -pe 's/^/alias /'"
|
||||||
if [[ "$_alias_NAMES" = "" ]] ; then
|
if [[ "$_alias_NAMES" = "" ]] ; then
|
||||||
# no aliases selected
|
# no aliases selected
|
||||||
|
@ -67,7 +75,7 @@ env_parallel() {
|
||||||
|
|
||||||
# Grep function names
|
# Grep function names
|
||||||
_function_NAMES="$(typeset +p -f | perl -pe 's/\(\).*//' |
|
_function_NAMES="$(typeset +p -f | perl -pe 's/\(\).*//' |
|
||||||
egrep "^${_grep_REGEXP}\$" | $_ignore_UNDERSCORE)"
|
grep -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$ )"
|
||||||
_list_function_BODIES="typeset -f $_function_NAMES"
|
_list_function_BODIES="typeset -f $_function_NAMES"
|
||||||
if [[ "$_function_NAMES" = "" ]] ; then
|
if [[ "$_function_NAMES" = "" ]] ; then
|
||||||
# no functions selected
|
# no functions selected
|
||||||
|
@ -77,7 +85,7 @@ env_parallel() {
|
||||||
|
|
||||||
# Grep variable names
|
# Grep variable names
|
||||||
_variable_NAMES="$(typeset +p | perl -pe 's/^typeset .. //' |
|
_variable_NAMES="$(typeset +p | perl -pe 's/^typeset .. //' |
|
||||||
egrep "^${_grep_REGEXP}\$" | $_ignore_UNDERSCORE |
|
grep -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$ |
|
||||||
egrep -v '^(PIPESTATUS)$')"
|
egrep -v '^(PIPESTATUS)$')"
|
||||||
_list_variable_VALUES="typeset -p $_variable_NAMES"
|
_list_variable_VALUES="typeset -p $_variable_NAMES"
|
||||||
if [[ "$_variable_NAMES" = "" ]] ; then
|
if [[ "$_variable_NAMES" = "" ]] ; then
|
||||||
|
@ -97,10 +105,3 @@ env_parallel() {
|
||||||
`which parallel` "$@";
|
`which parallel` "$@";
|
||||||
unset PARALLEL_ENV;
|
unset PARALLEL_ENV;
|
||||||
}
|
}
|
||||||
|
|
||||||
# _env_parallel() {
|
|
||||||
# # env_parallel.ksh
|
|
||||||
# export PARALLEL_ENV="$(alias | perl -pe 's/^/alias /';typeset -p|egrep -v 'typeset( -i)? -r|PIPESTATUS';typeset -f)";
|
|
||||||
# `which parallel` "$@";
|
|
||||||
# unset PARALLEL_ENV;
|
|
||||||
# }
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
#!/bin/pdksh
|
#!/bin/pdksh
|
||||||
|
|
||||||
# This file must be sourced in ksh:
|
# This file must be sourced in pdksh:
|
||||||
#
|
#
|
||||||
# source `which env_parallel.ksh`
|
# source `which env_parallel.pdksh`
|
||||||
#
|
#
|
||||||
# after which 'env_parallel' works
|
# after which 'env_parallel' works
|
||||||
#
|
#
|
||||||
|
@ -27,7 +27,86 @@
|
||||||
|
|
||||||
env_parallel() {
|
env_parallel() {
|
||||||
# env_parallel.pdksh
|
# env_parallel.pdksh
|
||||||
export PARALLEL_ENV="$(alias | perl -pe 's/^/alias /';typeset -p|egrep -v 'typeset( -i)? -r|PIPESTATUS';typeset -f)";
|
|
||||||
|
# Get the --env variables if set
|
||||||
|
# --env _ should be ignored
|
||||||
|
# and convert a b c to (a|b|c)
|
||||||
|
# If --env not set: Match everything (.*)
|
||||||
|
_grep_REGEXP="$(
|
||||||
|
perl -e '
|
||||||
|
for(@ARGV){
|
||||||
|
/^_$/ and $next_is_env = 0;
|
||||||
|
$next_is_env and push @envvar, split/,/, $_;
|
||||||
|
$next_is_env = /^--env$/;
|
||||||
|
}
|
||||||
|
$vars = join "|",map { quotemeta $_ } @envvar;
|
||||||
|
print $vars ? "($vars)" : "(.*)";
|
||||||
|
' -- "$@"
|
||||||
|
)"
|
||||||
|
# Deal with --env _
|
||||||
|
_ignore_UNDERSCORE="$(
|
||||||
|
perl -e '
|
||||||
|
for(@ARGV){
|
||||||
|
$next_is_env and push @envvar, split/,/, $_;
|
||||||
|
$next_is_env=/^--env$/;
|
||||||
|
}
|
||||||
|
if(grep { /^_$/ } @envvar) {
|
||||||
|
if(not open(IN, "<", "$ENV{HOME}/.parallel/ignored_vars")) {
|
||||||
|
print STDERR "parallel: Error: ",
|
||||||
|
"Run \"parallel --record-env\" in a clean environment first.\n";
|
||||||
|
} else {
|
||||||
|
chomp(@ignored_vars = <IN>);
|
||||||
|
$vars = join "|",map { quotemeta $_ } @ignored_vars;
|
||||||
|
print $vars ? "($vars)" : "(,,nO,,VaRs,,)";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
' -- "$@"
|
||||||
|
)"
|
||||||
|
|
||||||
|
# Grep alias names
|
||||||
|
_alias_NAMES="$(alias | perl -pe 's/=.*//' |
|
||||||
|
grep -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$ )"
|
||||||
|
_list_alias_BODIES="alias $_alias_NAMES | perl -pe 's/^/alias /'"
|
||||||
|
if [[ "$_alias_NAMES" = "" ]] ; then
|
||||||
|
# no aliases selected
|
||||||
|
_list_alias_BODIES="true"
|
||||||
|
fi
|
||||||
|
unset _alias_NAMES
|
||||||
|
|
||||||
|
# Grep function names
|
||||||
|
_function_NAMES=$(typeset +p -f | perl -pe 's/\(\).*//' |
|
||||||
|
grep -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$ )
|
||||||
|
_list_function_BODIES="typeset -f $_function_NAMES"
|
||||||
|
if [[ "$_function_NAMES" = "" ]] ; then
|
||||||
|
# no functions selected
|
||||||
|
_list_function_BODIES="true"
|
||||||
|
fi
|
||||||
|
unset _function_NAMES
|
||||||
|
|
||||||
|
# Grep variable names
|
||||||
|
_tmp_READONLY="$(mktemp)"
|
||||||
|
readonly > "$_tmp_READONLY"
|
||||||
|
_variable_NAMES="$(typeset | perl -pe 's/^(type)?set( -.)* //' |
|
||||||
|
grep -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$ |
|
||||||
|
grep -vFf $_tmp_READONLY |
|
||||||
|
grep -Ev '^(PIPESTATUS)')"
|
||||||
|
rm $_tmp_READONLY
|
||||||
|
unset _tmp_READONLY
|
||||||
|
_list_variable_VALUES="typeset -p $_variable_NAMES"
|
||||||
|
if [[ "$_variable_NAMES" = "" ]] ; then
|
||||||
|
# no variables selected
|
||||||
|
_list_variable_VALUES="true"
|
||||||
|
fi
|
||||||
|
unset _variable_NAMES
|
||||||
|
|
||||||
|
# eval is needed for aliases - cannot explain why
|
||||||
|
export PARALLEL_ENV="$(
|
||||||
|
eval $_list_alias_BODIES;
|
||||||
|
$_list_variable_VALUES;
|
||||||
|
$_list_function_BODIES)";
|
||||||
|
unset _list_alias_BODIES
|
||||||
|
unset _list_variable_VALUES
|
||||||
|
unset _list_function_BODIES
|
||||||
`which parallel` "$@";
|
`which parallel` "$@";
|
||||||
unset PARALLEL_ENV;
|
unset PARALLEL_ENV;
|
||||||
}
|
}
|
||||||
|
|
|
@ -160,29 +160,37 @@ E.g. by doing:
|
||||||
|
|
||||||
=item aliases
|
=item aliases
|
||||||
|
|
||||||
alias myecho=echo
|
alias myecho 'echo aliases'
|
||||||
env_parallel myecho ::: test
|
env_parallel myecho ::: work
|
||||||
env_parallel -S server myecho ::: test
|
env_parallel -S server myecho ::: work
|
||||||
|
env_parallel --env myecho myecho ::: work
|
||||||
|
env_parallel --env myecho -S server myecho ::: work
|
||||||
|
|
||||||
=item functions
|
=item functions
|
||||||
|
|
||||||
function myfunc
|
function myfunc
|
||||||
echo $argv
|
echo functions $argv
|
||||||
end
|
end
|
||||||
env_parallel myfunc ::: test
|
env_parallel myfunc ::: work
|
||||||
env_parallel -S server myfunc ::: test
|
env_parallel -S server myfunc ::: work
|
||||||
|
env_parallel --env myfunc myfunc ::: work
|
||||||
|
env_parallel --env myfunc -S server myfunc ::: work
|
||||||
|
|
||||||
=item variables
|
=item variables
|
||||||
|
|
||||||
set myvar test
|
set myvar variables
|
||||||
env_parallel echo '$myvar' ::: test
|
env_parallel echo '$myvar' ::: work
|
||||||
env_parallel -S server echo '$myvar' ::: test
|
env_parallel -S server echo '$myvar' ::: work
|
||||||
|
env_parallel --env myvar echo '$myvar' ::: work
|
||||||
|
env_parallel --env myvar -S server echo '$myvar' ::: work
|
||||||
|
|
||||||
=item arrays
|
=item arrays
|
||||||
|
|
||||||
set myarray foo bar baz
|
set myarray arrays work, too
|
||||||
env_parallel echo '$myarray[{}]' ::: 1 2 3
|
env_parallel -k echo '$myarray[{}]' ::: 1 2 3
|
||||||
env_parallel -S server echo '$myarray[{}]' ::: 1 2 3
|
env_parallel -k -S server echo '$myarray[{}]' ::: 1 2 3
|
||||||
|
env_parallel -k --env myarray echo '$myarray[{}]' ::: 1 2 3
|
||||||
|
env_parallel -k --env myarray -S server echo '$myarray[{}]' ::: 1 2 3
|
||||||
|
|
||||||
=back
|
=back
|
||||||
|
|
||||||
|
@ -250,27 +258,35 @@ E.g. by doing:
|
||||||
|
|
||||||
=item aliases
|
=item aliases
|
||||||
|
|
||||||
alias myecho=echo
|
alias myecho="echo aliases";
|
||||||
env_parallel myecho ::: test
|
env_parallel myecho ::: work;
|
||||||
env_parallel -S server myecho ::: test
|
env_parallel -S server myecho ::: work;
|
||||||
|
env_parallel --env myecho myecho ::: work;
|
||||||
|
env_parallel --env myecho -S server myecho ::: work
|
||||||
|
|
||||||
=item functions
|
=item functions
|
||||||
|
|
||||||
myfunc() { echo $*; }
|
myfunc() { echo functions $*; };
|
||||||
env_parallel myfunc ::: test
|
env_parallel myfunc ::: work;
|
||||||
env_parallel -S server myfunc ::: test
|
env_parallel -S server myfunc ::: work;
|
||||||
|
env_parallel --env myfunc myfunc ::: work;
|
||||||
|
env_parallel --env myfunc -S server myfunc ::: work
|
||||||
|
|
||||||
=item variables
|
=item variables
|
||||||
|
|
||||||
myvar=test
|
myvar=variables;
|
||||||
env_parallel echo '$myvar' ::: test
|
env_parallel echo "\$myvar" ::: work;
|
||||||
env_parallel -S server echo '$myvar' ::: test
|
env_parallel -S server echo "\$myvar" ::: work;
|
||||||
|
env_parallel --env myvar echo "\$myvar" ::: work;
|
||||||
|
env_parallel --env myvar -S server echo "\$myvar" ::: work
|
||||||
|
|
||||||
=item arrays
|
=item arrays
|
||||||
|
|
||||||
myarray=(foo bar baz)
|
myarray=(arrays work, too);
|
||||||
env_parallel echo '${myarray[{}]}' ::: 0 1 2
|
env_parallel -k echo "\${myarray[{}]}" ::: 0 1 2;
|
||||||
env_parallel -S server echo '${myarray[{}]}' ::: 0 1 2
|
env_parallel -k -S server echo "\${myarray[{}]}" ::: 0 1 2;
|
||||||
|
env_parallel -k --env myarray echo "\${myarray[{}]}" ::: 0 1 2;
|
||||||
|
env_parallel -k --env myarray -S server echo "\${myarray[{}]}" ::: 0 1 2
|
||||||
|
|
||||||
=back
|
=back
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,8 @@ else
|
||||||
# If --env not set: Match everything (.*)
|
# If --env not set: Match everything (.*)
|
||||||
set _tMpscRIpt=`tempfile`
|
set _tMpscRIpt=`tempfile`
|
||||||
cat <<'EOF' > $_tMpscRIpt
|
cat <<'EOF' > $_tMpscRIpt
|
||||||
|
#!/usr/bin/perl
|
||||||
|
|
||||||
for(@ARGV){
|
for(@ARGV){
|
||||||
/^_$/ and $next_is_env = 0;
|
/^_$/ and $next_is_env = 0;
|
||||||
$next_is_env and push @envvar, split/,/, $_;
|
$next_is_env and push @envvar, split/,/, $_;
|
||||||
|
@ -43,7 +45,8 @@ else
|
||||||
$vars = join "|",map { quotemeta $_ } @envvar;
|
$vars = join "|",map { quotemeta $_ } @envvar;
|
||||||
print $vars ? "($vars)" : "(.*)";
|
print $vars ? "($vars)" : "(.*)";
|
||||||
'EOF'
|
'EOF'
|
||||||
set _grep_REGEXP="`perl $_tMpscRIpt -- !*`"
|
set _grep_REGEXP="`perl $_tMpscRIpt -- $PARALLEL`"
|
||||||
|
|
||||||
# Deal with --env _
|
# Deal with --env _
|
||||||
cat <<'EOF' > $_tMpscRIpt
|
cat <<'EOF' > $_tMpscRIpt
|
||||||
#!/usr/bin/perl
|
#!/usr/bin/perl
|
||||||
|
@ -59,12 +62,13 @@ else
|
||||||
} else {
|
} else {
|
||||||
chomp(@ignored_vars = <IN>);
|
chomp(@ignored_vars = <IN>);
|
||||||
$vars = join "|",map { quotemeta $_ } @ignored_vars;
|
$vars = join "|",map { quotemeta $_ } @ignored_vars;
|
||||||
print $vars ? "($vars)" : "(nOVaRs)";
|
print $vars ? "($vars)" : "(,,nO,,VaRs,,)";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
'EOF'
|
'EOF'
|
||||||
set _ignore_UNDERSCORE="`perl $_tMpscRIpt -- !*`"
|
set _ignore_UNDERSCORE="`perl $_tMpscRIpt -- $PARALLEL`"
|
||||||
rm $_tMpscRIpt
|
rm $_tMpscRIpt
|
||||||
|
|
||||||
# Get the scalar and array variable names
|
# Get the scalar and array variable names
|
||||||
set _vARnAmES=(`set | awk -e '{print $1}' |grep -vE '^(#|_|killring|prompt2|command)$' | grep -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$`)
|
set _vARnAmES=(`set | awk -e '{print $1}' |grep -vE '^(#|_|killring|prompt2|command)$' | grep -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$`)
|
||||||
|
|
||||||
|
|
|
@ -33,7 +33,8 @@ env_parallel() {
|
||||||
# and convert a b c to (a|b|c)
|
# and convert a b c to (a|b|c)
|
||||||
# If --env not set: Match everything (.*)
|
# If --env not set: Match everything (.*)
|
||||||
_grep_REGEXP="$(
|
_grep_REGEXP="$(
|
||||||
perl -e 'for(@ARGV){
|
perl -e '
|
||||||
|
for(@ARGV){
|
||||||
/^_$/ and $next_is_env = 0;
|
/^_$/ and $next_is_env = 0;
|
||||||
$next_is_env and push @envvar, split/,/, $_;
|
$next_is_env and push @envvar, split/,/, $_;
|
||||||
$next_is_env = /^--env$/;
|
$next_is_env = /^--env$/;
|
||||||
|
@ -44,18 +45,27 @@ env_parallel() {
|
||||||
)"
|
)"
|
||||||
# Deal with --env _
|
# Deal with --env _
|
||||||
local _ignore_UNDERSCORE="$(
|
local _ignore_UNDERSCORE="$(
|
||||||
perl -e 'for(@ARGV){
|
perl -e '
|
||||||
|
for(@ARGV){
|
||||||
$next_is_env and push @envvar, split/,/, $_;
|
$next_is_env and push @envvar, split/,/, $_;
|
||||||
$next_is_env=/^--env$/;
|
$next_is_env=/^--env$/;
|
||||||
}
|
}
|
||||||
$underscore = grep { /^_$/ } @envvar;
|
if(grep { /^_$/ } @envvar) {
|
||||||
print $underscore ? "grep -vf $ENV{HOME}/.parallel/ignored_vars" : "cat";
|
if(not open(IN, "<", "$ENV{HOME}/.parallel/ignored_vars")) {
|
||||||
|
print STDERR "parallel: Error: ",
|
||||||
|
"Run \"parallel --record-env\" in a clean environment first.\n";
|
||||||
|
} else {
|
||||||
|
chomp(@ignored_vars = <IN>);
|
||||||
|
$vars = join "|",map { quotemeta $_ } @ignored_vars;
|
||||||
|
print $vars ? "($vars)" : "(,,nO,,VaRs,,)";
|
||||||
|
}
|
||||||
|
}
|
||||||
' -- "$@"
|
' -- "$@"
|
||||||
)"
|
)"
|
||||||
|
|
||||||
# Grep alias names
|
# Grep alias names
|
||||||
_alias_NAMES="$(print -l ${(k)aliases} |
|
_alias_NAMES="$(print -l ${(k)aliases} |
|
||||||
egrep "^${_grep_REGEXP}\$" | eval $_ignore_UNDERSCORE )"
|
grep -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$ )"
|
||||||
_list_alias_BODIES="alias "$(echo $_alias_NAMES|xargs)" | perl -pe 's/^/alias /'"
|
_list_alias_BODIES="alias "$(echo $_alias_NAMES|xargs)" | perl -pe 's/^/alias /'"
|
||||||
if [[ "$_alias_NAMES" = "" ]] ; then
|
if [[ "$_alias_NAMES" = "" ]] ; then
|
||||||
# no aliases selected
|
# no aliases selected
|
||||||
|
@ -65,7 +75,7 @@ env_parallel() {
|
||||||
|
|
||||||
# Grep function names
|
# Grep function names
|
||||||
_function_NAMES="$(print -l ${(k)functions} |
|
_function_NAMES="$(print -l ${(k)functions} |
|
||||||
egrep "^${_grep_REGEXP}\$" | eval $_ignore_UNDERSCORE |
|
grep -E "^$_grep_REGEXP\$" | grep -vE "^$_ignore_UNDERSCORE\$" |
|
||||||
grep -v '='
|
grep -v '='
|
||||||
)"
|
)"
|
||||||
_list_function_BODIES="typeset -f "$(echo $_function_NAMES|xargs)
|
_list_function_BODIES="typeset -f "$(echo $_function_NAMES|xargs)
|
||||||
|
@ -78,7 +88,7 @@ env_parallel() {
|
||||||
# Grep variable names
|
# Grep variable names
|
||||||
# The egrep -v is crap and should be better
|
# The egrep -v is crap and should be better
|
||||||
_variable_NAMES="$(print -l ${(k)parameters} |
|
_variable_NAMES="$(print -l ${(k)parameters} |
|
||||||
egrep "^${_grep_REGEXP}\$" | eval $_ignore_UNDERSCORE |
|
grep -E "^$_grep_REGEXP"\$ | grep -vE "^$_ignore_UNDERSCORE"\$ |
|
||||||
egrep -v '^([-?#!$*@_0]|zsh_eval_context|ZSH_EVAL_CONTEXT|LINENO|IFS|commands|functions|options|aliases|EUID|EGID|UID|GID)$' |
|
egrep -v '^([-?#!$*@_0]|zsh_eval_context|ZSH_EVAL_CONTEXT|LINENO|IFS|commands|functions|options|aliases|EUID|EGID|UID|GID)$' |
|
||||||
egrep -v 'terminfo|funcstack|galiases|keymaps|parameters|jobdirs|dirstack|functrace|funcsourcetrace|zsh_scheduled_events|dis_aliases|dis_reswords|dis_saliases|modules|reswords|saliases|widgets|userdirs|historywords|nameddirs|termcap|dis_builtins|dis_functions|jobtexts|funcfiletrace|dis_galiases|builtins|history|jobstates'
|
egrep -v 'terminfo|funcstack|galiases|keymaps|parameters|jobdirs|dirstack|functrace|funcsourcetrace|zsh_scheduled_events|dis_aliases|dis_reswords|dis_saliases|modules|reswords|saliases|widgets|userdirs|historywords|nameddirs|termcap|dis_builtins|dis_functions|jobtexts|funcfiletrace|dis_galiases|builtins|history|jobstates'
|
||||||
)"
|
)"
|
||||||
|
@ -103,14 +113,3 @@ env_parallel() {
|
||||||
`which parallel` "$@";
|
`which parallel` "$@";
|
||||||
unset PARALLEL_ENV;
|
unset PARALLEL_ENV;
|
||||||
}
|
}
|
||||||
|
|
||||||
_old_env_parallel() {
|
|
||||||
# env_parallel.zsh
|
|
||||||
export PARALLEL_ENV="$(alias | perl -pe 's/^/alias /'; typeset -p |
|
|
||||||
grep -aFvf <(typeset -pr) |
|
|
||||||
egrep -iav 'ZSH_EVAL_CONTEXT|LINENO=| _=|aliases|^typeset [a-z_]+$'|
|
|
||||||
egrep -av '^(typeset -A (commands|functions|options)|typeset IFS=|..$)|cyan';
|
|
||||||
typeset -f)";
|
|
||||||
parallel "$@";
|
|
||||||
unset PARALLEL_ENV;
|
|
||||||
}
|
|
||||||
|
|
|
@ -108,6 +108,43 @@ _EOF
|
||||||
ssh ksh@lo "$myscript"
|
ssh ksh@lo "$myscript"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
par_pdksh_man() {
|
||||||
|
echo '### pdksh'
|
||||||
|
myscript=$(cat <<'_EOF'
|
||||||
|
echo "### From man env_parallel"
|
||||||
|
|
||||||
|
. `which env_parallel.pdksh`;
|
||||||
|
alias myecho="echo aliases";
|
||||||
|
env_parallel myecho ::: work;
|
||||||
|
env_parallel -S server myecho ::: work;
|
||||||
|
env_parallel --env myecho myecho ::: work;
|
||||||
|
env_parallel --env myecho -S server myecho ::: work
|
||||||
|
|
||||||
|
. `which env_parallel.pdksh`;
|
||||||
|
myfunc() { echo functions $*; };
|
||||||
|
env_parallel myfunc ::: work;
|
||||||
|
env_parallel -S server myfunc ::: work;
|
||||||
|
env_parallel --env myfunc myfunc ::: work;
|
||||||
|
env_parallel --env myfunc -S server myfunc ::: work
|
||||||
|
|
||||||
|
. `which env_parallel.pdksh`;
|
||||||
|
myvar=variables;
|
||||||
|
env_parallel echo "\$myvar" ::: work;
|
||||||
|
env_parallel -S server echo "\$myvar" ::: work;
|
||||||
|
env_parallel --env myvar echo "\$myvar" ::: work;
|
||||||
|
env_parallel --env myvar -S server echo "\$myvar" ::: work
|
||||||
|
|
||||||
|
. `which env_parallel.pdksh`;
|
||||||
|
myarray=(arrays work, too);
|
||||||
|
env_parallel -k echo "\${myarray[{}]}" ::: 0 1 2;
|
||||||
|
env_parallel -k -S server echo "\${myarray[{}]}" ::: 0 1 2;
|
||||||
|
env_parallel -k --env myarray echo "\${myarray[{}]}" ::: 0 1 2;
|
||||||
|
env_parallel -k --env myarray -S server echo "\${myarray[{}]}" ::: 0 1 2
|
||||||
|
_EOF
|
||||||
|
)
|
||||||
|
ssh pdksh@lo "$myscript"
|
||||||
|
}
|
||||||
|
|
||||||
par_tcsh_man() {
|
par_tcsh_man() {
|
||||||
echo '### tcsh'
|
echo '### tcsh'
|
||||||
myscript=$(cat <<'_EOF'
|
myscript=$(cat <<'_EOF'
|
||||||
|
@ -143,7 +180,7 @@ par_csh_man() {
|
||||||
myscript=$(cat <<'_EOF'
|
myscript=$(cat <<'_EOF'
|
||||||
echo "### From man env_parallel"
|
echo "### From man env_parallel"
|
||||||
|
|
||||||
source `which env_parallel.csh`;
|
# source `which env_parallel.csh`;
|
||||||
|
|
||||||
alias myecho 'echo aliases'
|
alias myecho 'echo aliases'
|
||||||
env_parallel myecho ::: work
|
env_parallel myecho ::: work
|
||||||
|
@ -170,6 +207,43 @@ _EOF
|
||||||
ssh csh@lo "$myscript"
|
ssh csh@lo "$myscript"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
par_fish_man() {
|
||||||
|
echo '### fish'
|
||||||
|
myscript=$(cat <<'_EOF'
|
||||||
|
echo "### From man env_parallel"
|
||||||
|
|
||||||
|
alias myecho 'echo aliases'
|
||||||
|
env_parallel myecho ::: work
|
||||||
|
env_parallel -S server myecho ::: work
|
||||||
|
env_parallel --env myecho myecho ::: work
|
||||||
|
env_parallel --env myecho -S server myecho ::: work
|
||||||
|
|
||||||
|
function myfunc
|
||||||
|
echo functions $argv
|
||||||
|
end
|
||||||
|
env_parallel myfunc ::: work
|
||||||
|
env_parallel -S server myfunc ::: work
|
||||||
|
env_parallel --env myfunc myfunc ::: work
|
||||||
|
env_parallel --env myfunc -S server myfunc ::: work
|
||||||
|
|
||||||
|
set myvar variables
|
||||||
|
env_parallel echo '$myvar' ::: work
|
||||||
|
env_parallel -S server echo '$myvar' ::: work
|
||||||
|
env_parallel --env myvar echo '$myvar' ::: work
|
||||||
|
env_parallel --env myvar -S server echo '$myvar' ::: work
|
||||||
|
|
||||||
|
set myarray arrays work, too
|
||||||
|
env_parallel -k echo '$myarray[{}]' ::: 1 2 3
|
||||||
|
env_parallel -k -S server echo '$myarray[{}]' ::: 1 2 3
|
||||||
|
env_parallel -k --env myarray echo '$myarray[{}]' ::: 1 2 3
|
||||||
|
env_parallel -k --env myarray -S server echo '$myarray[{}]' ::: 1 2 3
|
||||||
|
|
||||||
|
_EOF
|
||||||
|
)
|
||||||
|
ssh fish@lo "$myscript"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
par_bash_underscore() {
|
par_bash_underscore() {
|
||||||
echo '### bash'
|
echo '### bash'
|
||||||
myscript=$(cat <<'_EOF'
|
myscript=$(cat <<'_EOF'
|
||||||
|
@ -289,6 +363,45 @@ _EOF
|
||||||
ssh ksh@lo "$myscript"
|
ssh ksh@lo "$myscript"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
par_pdksh_underscore() {
|
||||||
|
echo '### pdksh'
|
||||||
|
myscript=$(cat <<'_EOF'
|
||||||
|
echo "### Testing of --env _"
|
||||||
|
|
||||||
|
. `which env_parallel.pdksh`;
|
||||||
|
env_parallel --record-env;
|
||||||
|
alias myecho="echo \$myvar aliases in";
|
||||||
|
myfunc() { myecho ${myarray[@]} functions $*; };
|
||||||
|
myvar="variables in";
|
||||||
|
myarray=(and arrays in);
|
||||||
|
env_parallel myfunc ::: work;
|
||||||
|
env_parallel -S server myfunc ::: work;
|
||||||
|
env_parallel --env myfunc,myvar,myarray,myecho myfunc ::: work;
|
||||||
|
env_parallel --env myfunc,myvar,myarray,myecho -S server myfunc ::: work;
|
||||||
|
env_parallel --env _ myfunc ::: work;
|
||||||
|
env_parallel --env _ -S server myfunc ::: work;
|
||||||
|
|
||||||
|
echo myvar >> ~/.parallel/ignored_vars;
|
||||||
|
env_parallel --env _ myfunc ::: work;
|
||||||
|
env_parallel --env _ -S server myfunc ::: work;
|
||||||
|
echo myarray >> ~/.parallel/ignored_vars;
|
||||||
|
env_parallel --env _ myfunc ::: work;
|
||||||
|
env_parallel --env _ -S server myfunc ::: work;
|
||||||
|
echo myecho >> ~/.parallel/ignored_vars;
|
||||||
|
env_parallel --env _ myfunc ::: work;
|
||||||
|
echo "OK if no myecho ^^^^^^^^^^^^^^^^^" >&2;
|
||||||
|
env_parallel --env _ -S server myfunc ::: work;
|
||||||
|
echo "OK if no myecho ^^^^^^^^^^^^^^^^^" >&2;
|
||||||
|
echo myfunc >> ~/.parallel/ignored_vars;
|
||||||
|
env_parallel --env _ myfunc ::: work;
|
||||||
|
echo "OK if no myfunc ^^^^^^^^^^^^^^^^^" >&2;
|
||||||
|
env_parallel --env _ -S server myfunc ::: work;
|
||||||
|
echo "OK if no myfunc ^^^^^^^^^^^^^^^^^" >&2;
|
||||||
|
_EOF
|
||||||
|
)
|
||||||
|
ssh pdksh@lo "$myscript"
|
||||||
|
}
|
||||||
|
|
||||||
par_tcsh_underscore() {
|
par_tcsh_underscore() {
|
||||||
echo '### tcsh'
|
echo '### tcsh'
|
||||||
myscript=$(cat <<'_EOF'
|
myscript=$(cat <<'_EOF'
|
||||||
|
@ -328,7 +441,7 @@ par_csh_underscore() {
|
||||||
myscript=$(cat <<'_EOF'
|
myscript=$(cat <<'_EOF'
|
||||||
echo "### Testing of --env _"
|
echo "### Testing of --env _"
|
||||||
|
|
||||||
# . `which env_parallel.tcsh`;
|
# . `which env_parallel.csh`;
|
||||||
env_parallel --record-env;
|
env_parallel --record-env;
|
||||||
alias myecho "echo "\$"myvar "\$'myarray'" aliases";
|
alias myecho "echo "\$"myvar "\$'myarray'" aliases";
|
||||||
set myvar="variables";
|
set myvar="variables";
|
||||||
|
@ -357,6 +470,47 @@ _EOF
|
||||||
ssh -tt csh@lo "$myscript"
|
ssh -tt csh@lo "$myscript"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
par_fish_underscore() {
|
||||||
|
echo '### fish'
|
||||||
|
myscript=$(cat <<'_EOF'
|
||||||
|
echo "### Testing of --env _"
|
||||||
|
|
||||||
|
# . `which env_parallel.fish`;
|
||||||
|
env_parallel --record-env;
|
||||||
|
alias myecho="echo \$myvar aliases";
|
||||||
|
function myfunc
|
||||||
|
myecho $myarray functions $argv
|
||||||
|
end
|
||||||
|
set myvar "variables in";
|
||||||
|
set myarray and arrays in;
|
||||||
|
env_parallel myfunc ::: work;
|
||||||
|
env_parallel -S server myfunc ::: work;
|
||||||
|
env_parallel --env myfunc,myvar,myarray,myecho myfunc ::: work;
|
||||||
|
env_parallel --env myfunc,myvar,myarray,myecho -S server myfunc ::: work;
|
||||||
|
env_parallel --env _ myfunc ::: work;
|
||||||
|
env_parallel --env _ -S server myfunc ::: work;
|
||||||
|
|
||||||
|
echo myvar >> ~/.parallel/ignored_vars;
|
||||||
|
env_parallel --env _ myfunc ::: work;
|
||||||
|
env_parallel --env _ -S server myfunc ::: work;
|
||||||
|
echo myarray >> ~/.parallel/ignored_vars;
|
||||||
|
env_parallel --env _ myfunc ::: work;
|
||||||
|
env_parallel --env _ -S server myfunc ::: work;
|
||||||
|
echo myecho >> ~/.parallel/ignored_vars;
|
||||||
|
env_parallel --env _ myfunc ::: work;
|
||||||
|
echo "OK if ^^^^^^^^^^^^^^^^^ no myecho" >&2;
|
||||||
|
env_parallel --env _ -S server myfunc ::: work;
|
||||||
|
echo "OK if ^^^^^^^^^^^^^^^^^ no myecho" >&2;
|
||||||
|
echo myfunc >> ~/.parallel/ignored_vars;
|
||||||
|
env_parallel --env _ myfunc ::: work;
|
||||||
|
echo "OK if ^^^^^^^^^^^^^^^^^ no myfunc" >&2;
|
||||||
|
env_parallel --env _ -S server myfunc ::: work;
|
||||||
|
echo "OK if ^^^^^^^^^^^^^^^^^ no myfunc" >&2;
|
||||||
|
_EOF
|
||||||
|
)
|
||||||
|
ssh fish@lo "$myscript"
|
||||||
|
}
|
||||||
|
|
||||||
# Test env_parallel:
|
# Test env_parallel:
|
||||||
# + for each shell
|
# + for each shell
|
||||||
# + remote, locally
|
# + remote, locally
|
||||||
|
@ -448,6 +602,35 @@ _EOF
|
||||||
ssh ksh@lo "$myscript"
|
ssh ksh@lo "$myscript"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
par_pdksh_funky() {
|
||||||
|
myscript=$(cat <<'_EOF'
|
||||||
|
. `which env_parallel.pdksh`;
|
||||||
|
|
||||||
|
myvar="myvar works"
|
||||||
|
funky=$(perl -e "print pack \"c*\", 1..255")
|
||||||
|
myarray=("" array_val2 3 "" 5 " space 6 ")
|
||||||
|
assocarr[a]=assoc_val_a
|
||||||
|
assocarr[b]=assoc_val_b
|
||||||
|
alias alias_echo="echo 3 arg";
|
||||||
|
func_echo() {
|
||||||
|
echo $*;
|
||||||
|
echo "$myvar"
|
||||||
|
echo "${myarray[5]}"
|
||||||
|
echo ${assocarr[a]}
|
||||||
|
echo Funky-"$funky"-funky
|
||||||
|
}
|
||||||
|
|
||||||
|
env_parallel alias_echo ::: alias_works
|
||||||
|
env_parallel func_echo ::: function_works
|
||||||
|
env_parallel -S lo alias_echo ::: alias_works_over_ssh
|
||||||
|
env_parallel -S lo func_echo ::: function_works_over_ssh
|
||||||
|
echo
|
||||||
|
echo "$funky" | parallel --shellquote
|
||||||
|
_EOF
|
||||||
|
)
|
||||||
|
ssh pdksh@lo "$myscript"
|
||||||
|
}
|
||||||
|
|
||||||
par_fish_funky() {
|
par_fish_funky() {
|
||||||
myscript=$(cat <<'_EOF'
|
myscript=$(cat <<'_EOF'
|
||||||
set myvar "myvar works"
|
set myvar "myvar works"
|
||||||
|
@ -524,6 +707,38 @@ _EOF
|
||||||
ssh csh@lo "$myscript"
|
ssh csh@lo "$myscript"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
par_tcsh_funky() {
|
||||||
|
myscript=$(cat <<'_EOF'
|
||||||
|
set myvar = "myvar works"
|
||||||
|
set funky = "`perl -e 'print pack q(c*), 2..255'`"
|
||||||
|
set myarray = ('' 'array_val2' '3' '' '5' ' space 6 ')
|
||||||
|
# declare -A assocarr
|
||||||
|
# assocarr[a]=assoc_val_a
|
||||||
|
# assocarr[b]=assoc_val_b
|
||||||
|
alias alias_echo echo 3 arg;
|
||||||
|
alias alias_echo_var 'echo $argv; echo "$myvar"; echo "${myarray[4]} special chars problem"; echo Funky-"$funky"-funky'
|
||||||
|
|
||||||
|
# function func_echo
|
||||||
|
# echo $argv;
|
||||||
|
# echo $myvar;
|
||||||
|
# echo ${myarray[2]}
|
||||||
|
# #echo ${assocarr[a]}
|
||||||
|
# echo Funky-"$funky"-funky
|
||||||
|
# end
|
||||||
|
|
||||||
|
env_parallel alias_echo ::: alias_works
|
||||||
|
env_parallel alias_echo_var ::: alias_var_works
|
||||||
|
env_parallel func_echo ::: function_does_not_work
|
||||||
|
env_parallel -S tcsh@lo alias_echo ::: alias_works_over_ssh
|
||||||
|
env_parallel -S tcsh@lo alias_echo_var ::: alias_var_works_over_ssh
|
||||||
|
env_parallel -S tcsh@lo func_echo ::: function_does_not_work_over_ssh
|
||||||
|
echo
|
||||||
|
echo "$funky" | parallel --shellquote
|
||||||
|
_EOF
|
||||||
|
)
|
||||||
|
ssh tcsh@lo "$myscript"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
export -f $(compgen -A function | grep par_)
|
export -f $(compgen -A function | grep par_)
|
||||||
# Tested with -j1..8
|
# Tested with -j1..8
|
||||||
|
|
|
@ -62,13 +62,13 @@ par_bash_underscore aliases in and arrays in functions work
|
||||||
par_bash_underscore aliases in and arrays in functions work
|
par_bash_underscore aliases in and arrays in functions work
|
||||||
par_bash_underscore aliases in functions work
|
par_bash_underscore aliases in functions work
|
||||||
par_bash_underscore aliases in functions work
|
par_bash_underscore aliases in functions work
|
||||||
par_bash_underscore /bin/bash: line 64: myecho: command not found
|
par_bash_underscore /bin/bash: line 139: myecho: command not found
|
||||||
par_bash_underscore OK if no myecho ^^^^^^^^^^^^^^^^^^^^^^^^^
|
par_bash_underscore OK if no myecho ^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
par_bash_underscore /bin/bash: line 64: myecho: command not found
|
par_bash_underscore /bin/bash: line 139: myecho: command not found
|
||||||
par_bash_underscore OK if no myecho ^^^^^^^^^^^^^^^^^^^^^^^^^
|
par_bash_underscore OK if no myecho ^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
par_bash_underscore /bin/bash: line 62: myfunc: command not found
|
par_bash_underscore /bin/bash: line 136: myfunc: command not found
|
||||||
par_bash_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^^^^^^^^^
|
par_bash_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
par_bash_underscore /bin/bash: line 62: myfunc: command not found
|
par_bash_underscore /bin/bash: line 136: myfunc: command not found
|
||||||
par_bash_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^^^^^^^^^
|
par_bash_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
par_csh_funky 3 arg alias_works
|
par_csh_funky 3 arg alias_works
|
||||||
par_csh_funky myvar works
|
par_csh_funky myvar works
|
||||||
|
@ -112,13 +112,13 @@ par_csh_underscore variables and arrays in aliases work
|
||||||
par_csh_underscore variables and arrays in aliases work
|
par_csh_underscore variables and arrays in aliases work
|
||||||
par_csh_underscore variables and arrays in aliases work
|
par_csh_underscore variables and arrays in aliases work
|
||||||
par_csh_underscore variables and arrays in aliases work
|
par_csh_underscore variables and arrays in aliases work
|
||||||
par_csh_underscore variables and arrays in aliases work
|
par_csh_underscore myvar: Undefined variable.
|
||||||
par_csh_underscore variables and arrays in aliases work
|
par_csh_underscore myvar: Undefined variable.
|
||||||
par_csh_underscore and arrays in aliases work
|
par_csh_underscore myarray: Undefined variable.
|
||||||
par_csh_underscore and arrays in aliases work
|
par_csh_underscore myarray: Undefined variable.
|
||||||
par_csh_underscore and arrays in aliases work
|
par_csh_underscore myecho: Command not found.
|
||||||
par_csh_underscore OK ^^^^^^^^^^^^^^^^^ if no myecho
|
par_csh_underscore OK ^^^^^^^^^^^^^^^^^ if no myecho
|
||||||
par_csh_underscore and arrays in aliases work
|
par_csh_underscore myecho: Command not found.
|
||||||
par_csh_underscore OK ^^^^^^^^^^^^^^^^^ if no myecho
|
par_csh_underscore OK ^^^^^^^^^^^^^^^^^ if no myecho
|
||||||
par_csh_underscore Connection to lo closed.
|
par_csh_underscore Connection to lo closed.
|
||||||
par_fish_funky env_parallel: Warning: ASCII value 1 in variables is not supported
|
par_fish_funky env_parallel: Warning: ASCII value 1 in variables is not supported
|
||||||
|
@ -157,6 +157,68 @@ par_fish_funky
|
||||||
par_fish_funky
|
par_fish_funky
|
||||||
par_fish_funky
|
par_fish_funky
|
||||||
par_fish_funky \\\\\\\\ \ \\\
\\\\\\\\\\\\\\ \ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~€<7F>\‚\ƒ\„\…\†\‡\ˆ\‰\Š\‹\Œ\<5C>\Ž\<5C>\<5C>\‘\’\“\”\•\–\—\˜\™\š\›\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ
|
par_fish_funky \\\\\\\\ \ \\\
\\\\\\\\\\\\\\ \ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~€<7F>\‚\ƒ\„\…\†\‡\ˆ\‰\Š\‹\Œ\<5C>\Ž\<5C>\<5C>\‘\’\“\”\•\–\—\˜\™\š\›\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ
|
||||||
|
par_fish_man ### fish
|
||||||
|
par_fish_man ### From man env_parallel
|
||||||
|
par_fish_man aliases work
|
||||||
|
par_fish_man aliases work
|
||||||
|
par_fish_man aliases work
|
||||||
|
par_fish_man aliases work
|
||||||
|
par_fish_man functions work
|
||||||
|
par_fish_man functions work
|
||||||
|
par_fish_man functions work
|
||||||
|
par_fish_man functions work
|
||||||
|
par_fish_man variables work
|
||||||
|
par_fish_man variables work
|
||||||
|
par_fish_man variables work
|
||||||
|
par_fish_man variables work
|
||||||
|
par_fish_man arrays
|
||||||
|
par_fish_man work,
|
||||||
|
par_fish_man too
|
||||||
|
par_fish_man arrays
|
||||||
|
par_fish_man work,
|
||||||
|
par_fish_man too
|
||||||
|
par_fish_man arrays
|
||||||
|
par_fish_man work,
|
||||||
|
par_fish_man too
|
||||||
|
par_fish_man arrays
|
||||||
|
par_fish_man work,
|
||||||
|
par_fish_man too
|
||||||
|
par_fish_underscore ### fish
|
||||||
|
par_fish_underscore ### Testing of --env _
|
||||||
|
par_fish_underscore variables in aliases and arrays in functions work
|
||||||
|
par_fish_underscore variables in aliases and arrays in functions work
|
||||||
|
par_fish_underscore variables in aliases and arrays in functions work
|
||||||
|
par_fish_underscore variables in aliases and arrays in functions work
|
||||||
|
par_fish_underscore variables in aliases and arrays in functions work
|
||||||
|
par_fish_underscore variables in aliases and arrays in functions work
|
||||||
|
par_fish_underscore aliases and arrays in functions work
|
||||||
|
par_fish_underscore aliases and arrays in functions work
|
||||||
|
par_fish_underscore aliases functions work
|
||||||
|
par_fish_underscore aliases functions work
|
||||||
|
par_fish_underscore fish: Unknown command “myechoâ€<C3A2>
|
||||||
|
par_fish_underscore Standard input: myecho $myarray functions $argv
|
||||||
|
par_fish_underscore ^
|
||||||
|
par_fish_underscore in function “myfuncâ€<C3A2>,
|
||||||
|
par_fish_underscore called on standard input,
|
||||||
|
par_fish_underscore with parameter list “workâ€<C3A2>
|
||||||
|
par_fish_underscore
|
||||||
|
par_fish_underscore OK if ^^^^^^^^^^^^^^^^^ no myecho
|
||||||
|
par_fish_underscore fish: Unknown command “myechoâ€<C3A2>
|
||||||
|
par_fish_underscore Standard input: myecho $myarray functions $argv
|
||||||
|
par_fish_underscore ^
|
||||||
|
par_fish_underscore in function “myfuncâ€<C3A2>,
|
||||||
|
par_fish_underscore called on standard input,
|
||||||
|
par_fish_underscore with parameter list “workâ€<C3A2>
|
||||||
|
par_fish_underscore
|
||||||
|
par_fish_underscore OK if ^^^^^^^^^^^^^^^^^ no myecho
|
||||||
|
par_fish_underscore fish: Unknown command “myfuncâ€<C3A2>
|
||||||
|
par_fish_underscore Standard input: myfunc work
|
||||||
|
par_fish_underscore ^
|
||||||
|
par_fish_underscore OK if ^^^^^^^^^^^^^^^^^ no myfunc
|
||||||
|
par_fish_underscore fish: Unknown command “myfuncâ€<C3A2>
|
||||||
|
par_fish_underscore Standard input: myfunc work
|
||||||
|
par_fish_underscore ^
|
||||||
|
par_fish_underscore OK if ^^^^^^^^^^^^^^^^^ no myfunc
|
||||||
par_ksh_funky 3 arg alias_works
|
par_ksh_funky 3 arg alias_works
|
||||||
par_ksh_funky function_works
|
par_ksh_funky function_works
|
||||||
par_ksh_funky myvar works
|
par_ksh_funky myvar works
|
||||||
|
@ -212,14 +274,91 @@ par_ksh_underscore aliases in and arrays in functions work
|
||||||
par_ksh_underscore aliases in and arrays in functions work
|
par_ksh_underscore aliases in and arrays in functions work
|
||||||
par_ksh_underscore aliases in functions work
|
par_ksh_underscore aliases in functions work
|
||||||
par_ksh_underscore aliases in functions work
|
par_ksh_underscore aliases in functions work
|
||||||
par_ksh_underscore /usr/bin/ksh[100]: myecho: not found [No such file or directory]
|
par_ksh_underscore /usr/bin/ksh[193]: myecho: not found [No such file or directory]
|
||||||
par_ksh_underscore OK if no myecho ^^^^^^^^^^^^^^^^^
|
par_ksh_underscore OK if no myecho ^^^^^^^^^^^^^^^^^
|
||||||
par_ksh_underscore /usr/bin/ksh[100]: myecho: not found [No such file or directory]
|
par_ksh_underscore /usr/bin/ksh[193]: myecho: not found [No such file or directory]
|
||||||
par_ksh_underscore OK if no myecho ^^^^^^^^^^^^^^^^^
|
par_ksh_underscore OK if no myecho ^^^^^^^^^^^^^^^^^
|
||||||
par_ksh_underscore /usr/bin/ksh: line 100: myfunc: not found
|
par_ksh_underscore /usr/bin/ksh: line 193: myfunc: not found
|
||||||
par_ksh_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^
|
par_ksh_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^
|
||||||
par_ksh_underscore /usr/bin/ksh: line 100: myfunc: not found
|
par_ksh_underscore /usr/bin/ksh: line 193: myfunc: not found
|
||||||
par_ksh_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^
|
par_ksh_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^
|
||||||
|
par_pdksh_funky 3 arg alias_works
|
||||||
|
par_pdksh_funky function_works
|
||||||
|
par_pdksh_funky myvar works
|
||||||
|
par_pdksh_funky space 6
|
||||||
|
par_pdksh_funky assoc_val_b
|
||||||
|
par_pdksh_funky Funky-
|
||||||
|
par_pdksh_funky
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€<7F>‚ƒ„…†‡ˆ‰Š‹Œ<E280B9>Ž<EFBFBD><C5BD>‘’“”•–—˜™š›œ<E280BA>žŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ-funky
|
||||||
|
par_pdksh_funky 3 arg alias_works_over_ssh
|
||||||
|
par_pdksh_funky function_works_over_ssh
|
||||||
|
par_pdksh_funky myvar works
|
||||||
|
par_pdksh_funky space 6
|
||||||
|
par_pdksh_funky assoc_val_b
|
||||||
|
par_pdksh_funky Funky-
|
||||||
|
par_pdksh_funky
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€<7F>‚ƒ„…†‡ˆ‰Š‹Œ<E280B9>Ž<EFBFBD><C5BD>‘’“”•–—˜™š›œ<E280BA>žŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ-funky
|
||||||
|
par_pdksh_funky
|
||||||
|
par_pdksh_funky \\\\\\\\
|
||||||
|
par_pdksh_funky \\\
\\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~€<7F>\‚\ƒ\„\…\†\‡\ˆ\‰\Š\‹\Œ\<5C>\Ž\<5C>\<5C>\‘\’\“\”\•\–\—\˜\™\š\›\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ
|
||||||
|
par_pdksh_man ### pdksh
|
||||||
|
par_pdksh_man ### From man env_parallel
|
||||||
|
par_pdksh_man aliases work
|
||||||
|
par_pdksh_man aliases work
|
||||||
|
par_pdksh_man aliases work
|
||||||
|
par_pdksh_man aliases work
|
||||||
|
par_pdksh_man functions work
|
||||||
|
par_pdksh_man functions work
|
||||||
|
par_pdksh_man functions work
|
||||||
|
par_pdksh_man functions work
|
||||||
|
par_pdksh_man variables work
|
||||||
|
par_pdksh_man variables work
|
||||||
|
par_pdksh_man variables work
|
||||||
|
par_pdksh_man variables work
|
||||||
|
par_pdksh_man arrays
|
||||||
|
par_pdksh_man work,
|
||||||
|
par_pdksh_man too
|
||||||
|
par_pdksh_man arrays
|
||||||
|
par_pdksh_man work,
|
||||||
|
par_pdksh_man too
|
||||||
|
par_pdksh_man arrays
|
||||||
|
par_pdksh_man work,
|
||||||
|
par_pdksh_man too
|
||||||
|
par_pdksh_man arrays
|
||||||
|
par_pdksh_man work,
|
||||||
|
par_pdksh_man too
|
||||||
|
par_pdksh_underscore ### pdksh
|
||||||
|
par_pdksh_underscore ### Testing of --env _
|
||||||
|
par_pdksh_underscore variables in aliases in and arrays in functions work
|
||||||
|
par_pdksh_underscore variables in aliases in and arrays in functions work
|
||||||
|
par_pdksh_underscore variables in aliases in and arrays in functions work
|
||||||
|
par_pdksh_underscore variables in aliases in and arrays in functions work
|
||||||
|
par_pdksh_underscore variables in aliases in and arrays in functions work
|
||||||
|
par_pdksh_underscore variables in aliases in and arrays in functions work
|
||||||
|
par_pdksh_underscore aliases in and arrays in functions work
|
||||||
|
par_pdksh_underscore aliases in and arrays in functions work
|
||||||
|
par_pdksh_underscore aliases in functions work
|
||||||
|
par_pdksh_underscore aliases in functions work
|
||||||
|
par_pdksh_underscore aliases in functions work
|
||||||
|
par_pdksh_underscore OK if no myecho ^^^^^^^^^^^^^^^^^
|
||||||
|
par_pdksh_underscore aliases in functions work
|
||||||
|
par_pdksh_underscore OK if no myecho ^^^^^^^^^^^^^^^^^
|
||||||
|
par_pdksh_underscore /bin/pdksh: myfunc: not found
|
||||||
|
par_pdksh_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^
|
||||||
|
par_pdksh_underscore /bin/pdksh: myfunc: not found
|
||||||
|
par_pdksh_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^
|
||||||
|
par_tcsh_funky 3 arg alias_works
|
||||||
|
par_tcsh_funky
|
||||||
|
par_tcsh_funky myvar works
|
||||||
|
par_tcsh_funky space special chars problem
|
||||||
|
par_tcsh_funky Funky-
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€<7F>‚ƒ„…†‡ˆ‰Š‹Œ<E280B9>Ž<EFBFBD><C5BD>‘’“”•–—˜™š›œ<E280BA>žŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùú-funky alias_var_works
|
||||||
|
par_tcsh_funky func_echo: Command not found.
|
||||||
|
par_tcsh_funky 3 arg alias_works_over_ssh
|
||||||
|
par_tcsh_funky
|
||||||
|
par_tcsh_funky myvar works
|
||||||
|
par_tcsh_funky space special chars problem
|
||||||
|
par_tcsh_funky Funky-
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€<7F>‚ƒ„…†‡ˆ‰Š‹Œ<E280B9>Ž<EFBFBD><C5BD>‘’“”•–—˜™š›œ<E280BA>žŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùú-funky alias_var_works_over_ssh
|
||||||
|
par_tcsh_funky func_echo: Command not found.
|
||||||
|
par_tcsh_funky
|
||||||
|
par_tcsh_funky \\\\\\\\ \ \\\
\\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~€<7F>\‚\ƒ\„\…\†\‡\ˆ\‰\Š\‹\Œ\<5C>\Ž\<5C>\<5C>\‘\’\“\”\•\–\—\˜\™\š\›\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú
|
||||||
par_tcsh_man ### tcsh
|
par_tcsh_man ### tcsh
|
||||||
par_tcsh_man ### From man env_parallel
|
par_tcsh_man ### From man env_parallel
|
||||||
par_tcsh_man aliases work
|
par_tcsh_man aliases work
|
||||||
|
|
Loading…
Reference in a new issue