0 votos

Sentencia if/then que compara la aplicación OSX con una versión específica

Tengo problemas para hacer un simple script que indique si la versión coincide o no. Usando VS Code como ejemplo.

Introduje esto en el terminal:

osascript -e 'version of app "Visual Studio Code"'

y obtener

1.73.1

entonces mi lógica me llevó a escribir:

#!/bin/bash/

vsversion=(osascript -e 'version of app "Visual Studio Code"')

 if [ $vsversion == "1.73.1" ]; 
    then 
        echo "Equal"
    else   
        echo "Not Equal"
 fi

esta salida

Not Equal

¿Qué estoy haciendo mal?

1voto

Ahmad Zyoud Puntos 688

Vale, me faltaba el "$" de más ¡pero es un momento de aprendizaje!

vsversion=$(osascript -e 'version of app "Visual Studio Code"')

dio la respuesta correcta frente a

vsversion=(osascript -e 'version of app "Visual Studio Code"')

que no

0voto

Mark Puntos 6

Bash Sustitución de comandos sintaxis es $(...)

Compara

vsversion=(osascript -e 'version of app "Visual Studio Code"')
declare -p vsversion

salidas (es una matriz)

declare -a vsversion=([0]="osascript" [1]="-e" [2]="version of app \"Visual Studio Code\"")

a

unset vsversion
vsversion=$(osascript -e 'version of app "Visual Studio Code"')
#.........^
declare -p vsversion

esto es mejor (mi versión está un poco desfasada)

declare -- vsversion="1.63.2"

Después, tenga cuidado de citar cualquier variable dentro de [...]

 if [ "$vsversion" == "1.73.1" ];

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X