Usar 'alias' en script bash en OSX

Escribo algunas secuencias de commands y quiero que funcione en Linux y Mac. El problema es que "las implementaciones de sed, readlink, zcat, etc. son diferentes en OS X y Linux".

Así que probé ESTE enfoque, pero para mí el command alias no funciona como esperaba. Aquí está el script simple 'a':

  • ¿Cómo cambiar el nombre de los files a través de Terminal utilizando la date del file como nombre de file?
  • ¿Se puede replace bash por completo en OS X?
  • ¿Por qué no puedo cambiar el bash al instalado por homebrew?
  • Dificultad para configurar 'Abrir con aplicación' a un alias
  • ¿Cómo crear un alias con drag and drop?
  • ¿Cómo creo un enlace de acceso directo desde el dock a una aplicación?
  • $cat a alias readlink=gnetworkinglink readlink --help 

    y el resultado …

     $./a readlink: illegal option -- - usage: readlink [-n] [file ...] 

    ¿Alguien podría explicarme qué hay debajo de la cortina y hay alguna solución?

    Usando OSX Yosemite 10.10.5 Es lo mismo con el bash incluido con el sistema operativo así como con "GNU bash, versión 4.3.42 (1) -lanzamiento (x86_64-apple-darwin14.5.0)"

  • Mac Mini repentinamente terriblemente lento
  • ¿Cuántas horas desde que desenchufé mi Mac?
  • Mac Finder: Obtener la ruta de un directory o file como una cadena
  • ¿Por qué se está desaprobando cron?
  • ¿Cómo cambiar el nombre de la fórmula instalada a través de Homebrew?
  • Tecla de flecha de control para saltar a la siguiente palabra
  • One Solution collect form web for “Usar 'alias' en script bash en OSX”

    Los alias no se interpretan dentro de scripts de shell. De bash(1) :

     Aliases are not expanded when the shell is not interactive, unless the expand_aliases shell option is set using shopt) 

    Entonces, el script aún llama al readlink estándar que no sabe sobre --help .

    En lugar de establecer expand_aliases (que debe recordar para hacerlo en cada sistema y que puede provocar efectos secundarios inesperados en otros scripts), le recomendaría usar funciones en su lugar:

     function my_readlink() { greadlink "$@" } my_readlink --help 
    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).