2015-04-30 10 views
5

Ho notato che Windows 7 consente di eseguire i file .sh come se fossero file .bat. Questo mi ha fatto chiedersi se è possibile scrivere un file .sh in modo che possa essere eseguito in Windows e Linux (diciamo bash).Script da riga di comando multipiattaforma (ad esempio .bat e .sh)

La prima cosa che mi viene in mente è fabbricare un'istruzione if in modo tale che Windows e Ubuntu possano gestirlo e saltare nel blocco corrispondente per eseguire comandi specifici della piattaforma. Come si può fare?

Nota: So che non è una buona pratica. So anche che i linguaggi di scripting come Python sono molto più adatti a risolvere questo problema rispetto a uno script a linea di comando con sintassi mista. Sono solo curioso ...

+2

È possibile trovare https://github.com/BYVoid/Batsh interessante – user

risposta

7

È possibile utilizzare questo:

rem(){ :;};rem ' 
@goto b 
';echo sh;exit 
:b 
@echo batch 

E 'valido script di shell e batch, e eseguirà blocchi diversi a seconda di come è gestito.

Modificare le linee echo e @echo per fare ciò che si desidera.

+0

Grazie. Esattamente quello che stavo cercando. Sarei interessato, però, se ci sono altri modi. – wehnsdaefflae

0

AFAIK, non è possibile eseguire direttamente i file .sh da Windows 'cmd.exe. Per questo è necessario un livello di emulazione * nix per eseguire la shell. Check-out Cygwin o Msys/MinGW

+1

Grazie per la risposta. Ma per favore vedi la prima frase della mia domanda. – wehnsdaefflae

+0

Beh, l'ho letto, di cui non ho mai sentito parlare, potrebbe cercare informazioni o riprodurlo su Windows 7. Come si esegue esattamente un file .sh sul sistema Win? – dekkard

+0

Fare doppio clic. Si noti che sto solo parlando delle estensioni dei nomi dei file. – wehnsdaefflae

Problemi correlati