¿Cómo encontrar la syntax de String correcta para mi bash?

Recibo un post de error para este alias:

alias ejectall='osascript -e 'tell application "Finder" to eject (every disk whose ejectable is true)'' 

Y aquí está el post de error:

 -bash: .bashrc: line 15: syntax error near unexpected token `(' -bash: .bashrc: line 15: `alias ejectall='osascript -e 'tell application "Finder" to eject (every disk whose ejectable is true)''' 

¡Tengo muchos alias allí, pero no puedo entender este post! Encontré muchos sitios web con muchas sugerencias diferentes de la syntax de String.

Estoy en OS X Mavericks (10.9.3).

Mi pregunta es:

¿Cómo puedo averiguar mi versión bash, y dependiendo de eso, la syntax correcta para mis files bash?

 bash --version alias ejectall=$'osascript -e \'tell application "Finder" to eject (every disk whose ejectable is true)'\' 

El problema es su cita, y es irrelevante qué versión de bash tiene (aunque podría ejecutar bash --version o echo "$BASH_VERSION" para averiguarlo). Esas reglas de cotización no han cambiado.

' -quotes son simples. Simplemente citan hasta la próxima ' . Entonces en tu ejemplo:

 alias ejectall='osascript -e 'tell application "Finder" to eject (every disk whose ejectable is true)'' ^ ^ start end 

En otras palabras, comenzando con "decir aplicación" no se cita, al shell.

Podrías hacerlo:

 alias ejectall='osascript -e '\''tell application "Finder" to eject (every disk whose ejectable is true)'\' 

Básicamente, eso termina la cadena entrecomillada, coloca una comilla simple (con \' ), luego comienza una nueva cadena entrecomillada. Las cadenas adyacentes entre comillas se fusionan ya que no hay un espacio. Puedes ver:

 $ echo 'I'\''ll work' I'll work 

Su otra opción es usar " -quotes " , luego debe escaping de otras comillas dobles con \" y también escaping de los signos de dólar con \$ .

 $ echo "That \"is\" \$3.00." That "is" $3.00. 

O, como señala Hauke ​​Laging en su respuesta, puede usar Bash's $' -strings. Aquellos habilitan varias secuencias de escape dentro de una cadena '', incluyendo \' .

Todo esto se detalla en la sección "Citar" en la página de manual de bash.