Compatibilità all'indietro degli script di shell

1

Uso un file .command per avviare uno script di shell di base nel formato:

#!/bin/bash
-- this simply starts Something at /usr/local/bin/Something
myLittleOneLineScript

Per farlo funzionare ho cambiato i permessi e l'ho reso eseguibile.

La domanda è: eseguo la versione più recente di Mac OS X e questo script funziona perfettamente. Ma: funzionerà in qualsiasi versione precedente di OS X?

    
posta Ian Bell 26.01.2016 - 11:49
fonte

2 risposte

2

"Funzionerà" ha due aspetti qui:

  • eseguirà il lavoro binario?
  • è bash in grado di eseguire lo script in quanto tale.

L'esempio sembra abbastanza semplice per quanto riguarda lo scripting della shell. Quindi sì, dovrebbe funzionare con le precedenti versioni OSX di bash. Sarebbe (a condizione che Something sia installato in /usr/local/bin ) persino lavori in versioni piuttosto vecchie di Bourne Shell ( /bin/sh ) su vari sistemi Unix.

    
risposta data 26.01.2016 - 12:29
fonte
0

Nella maggior parte (se non tutte) delle installazioni OS X predefinite lo script non funzionerà (OK lo script funziona ma il comando Qualcosa non funziona). La cartella / usr / local / bin semplicemente non esiste.

La cartella / usr / local e tutte le cartelle successive sono riservate o designate per / a comandi di terze parti.

Ecco alcuni esempi di strumenti da riga di comando installati da fornitori di app di terze parti:

  • MySQL Community Edition (Oracle)
  • VirtualBox (Oracle)
  • TextWrangler / BBEdit (link a una successiva cartella dell'app)
  • NMap
  • homebrew
  • ....

Per far funzionare lo script devi installare l'eseguibile ... / Something della riga di comando che risiede in una sottocartella di / usr / local prima. L'eseguibile installato deve essere compatibile con il vecchio sistema e tutti gli argomenti / le opzioni nello script devono essere compatibili con l'eseguibile versione precedente (vecchio).

    
risposta data 26.01.2016 - 12:35
fonte

Leggi altre domande sui tag