Qual è lo scopo di usare `call` qui?


1

in un file batch cmd, ho trovato la seguente riga

call sqlcmd -S .\SQLEXPRESS -d main_dev -i create.sql

Qual è lo scopo di utilizzare callqui?

Sto leggendo https://ss64.com/nt/call.html , ma non riesco a capire quale caso nel link si applica qui.

Possiamo semplicemente eseguire il comando senza call, ad es

sqlcmd -S .\SQLEXPRESS -d main_dev -i create.sql

Sono abituato a Bash. Esiste un comando simile in Bash o Linux callin cmd?

Grazie.


1
Perché crea un nuovo contesto per l'esecuzione dello script / eseguibile, indipendentemente dal contesto e dall'ambiente dei file batch.
Frank Thomas,

Grazie. Sono abituato a Bash. Esiste un comando simile in Bash o Linux callin cmd?
Tim

Se invochi un file batch da un altro, quindi l'utilizzo callsignifica che tornerà in seguito e continuerà con il file batch originale. Se si omette call, si eseguirà il collegamento a catena al file e non si ritornerà.
AFH,

Non è necessario un equivalente in bash: viene sempre restituito uno script chiamato. Se vuoi concatenare senza tornare, usa exec.
AFH,

Bene, bash ha un equivalente opposto (se questo ha senso). In bash, source script.sho . script.shfarà eseguire un file di script nello stesso contesto dello script in cui si verifica, mentre per impostazione predefinita uno script avviato da uno script verrà eseguito con il proprio stdin / out / err, ecc.
Frank Thomas

Risposte:


1

Dovresti esaminare il file batch in cui callsi trova l' istruzione. Normalmente, callun'istruzione batch significa che c'è ancora molto da fare dal file batch chiamante, quindi il file batch chiamato deve restituire il controllo al file batch chiamante. Se si dovesse fare il cambiamento di informarsi sulla, sqlcmdsarebbe non restituire il controllo al file batch di chiamata, e tutto ciò dopo che non avrebbe eseguito.


Grazie. Sono abituato a Bash. Esiste un comando simile in Bash o Linux callin cmd?
Tim

No, il comportamento predefinito in bash è di tornare allo script "parent".
Jeff Zeitlin,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.