Tengo el guión simplificado de relleno en Mac OS X 10.12:
#!/usr/bin/env bash
echo "=> BASH_VERSION = $BASH_VERSION"
function testForLoopMac {
local file
for file
do
echo File=$file
done | egrep "$file"
}
function testForLoopMacBis {
local file
for file
do
echo File=$file
done | egrep "$file|OK"
}
testForLoopMac $@
testForLoopMacBis $@
Pero el resultado cuando ejecuto es:
$ testForLoopMac.sh example.pdf
=> BASH_VERSION = 3.2.57(1)-release
File=example.pdf
egrep: empty (sub)expression
En Debian / Ubuntu Linux, el resultado es:
$ testForLoopMac.sh example.md
=> BASH_VERSION = 4.3.30(1)-release
File=example.md
File=example.md
Editar: con bash4 en Mac OSX 10.12:
Cambié el shebang a #!/usr/bin/env bash4
y el resultado es el mismo:
$ testForLoopMac.sh example.md
=> BASH_VERSION = 4.4.12(1)-release
File=example.md
egrep: empty (sub)expression
Edit: Gracias a ustedes, entiendo que la diferencia de comportamiento en Linux o BSD egrep
se debe a que en el momento de la ejecución de egrep
la variable puede estar vacía.
Voy a utilizar, por lo tanto, el siguiente regExp:
egrep "File=|OK"
Gracias de nuevo :)