A exportação de comportamento de função foi alterada no bash?

1

Estou tentando manter alguns scripts bash para serem usados em algumas plataformas diferentes. Eu acertei algo estranho com funções de exportação que não posso explicar. O script de teste a seguir:

#!/bin/bash                                                                          
function test_fn() {                                                                   
    echo "In test_fn()"
}                                                                                  
export -f test_fn                                                             
echo test1 test2 |  xargs -d ' ' -n1 -I{} bash -c "test_fn {}" 

Comporta-se de forma diferente no bash 4.1 e 4.3 e não sei porquê:

$ /bin/bash test-fn.sh
bash: test_fn: command not found
$ /bin/bash --version
GNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu)
$ bash test-fn.sh
In test_fn()
In test_fn()
$ bash --version
GNU bash, version 4.3.39(1)-release (x86_64-unknown-linux-gnu)

Isso talvez seja algum tipo de efeito das correções de shellshock?

    
por PerilousApricot 13.11.2015 / 17:25

0 respostas

Tags

yii\base\ErrorException
Copied! Copy Stacktrace Search Stackoverflow Search Google Error

PHP Core Warning – yii\base\ErrorException

PHP Startup: Unable to load dynamic library 'memcached.so' (tried: /usr/lib/php/20190902/memcached.so (/usr/lib/php/20190902/memcached.so: undefined symbol: igbinary_serialize), /usr/lib/php/20190902/memcached.so.so (/usr/lib/php/20190902/memcached.so.so: cannot open shared object file: No such file or directory))

$_GET = [
    'id' => '870455',
    'url' => 'did-exporting-function-behavior-change-in-bash',
];

$_COOKIE = [
    '_csrf-frontend' => '4aaefc84558f6464effa92ca65c4d60b80fc0d88c14626cbf7c40e9e9f806c7ba:2:{i:0;s:14:"_csrf-frontend";i:1;s:32:"8qLGEdXulO8I2cobgc2WnPdxd3MrtQdm";}',
    'advanced-frontend' => '82ga37lcejpshefv732s8o6oht',
];

$_SESSION = [
    '__flash' => [],
];