Domanda

Ho il seguente problema: Ho molti script di test che stanno attualmente in esecuzione usando MKS Toolkit .Siamo riusciti a eseguire quegli script usando mingw shell (msys) ma ci sono altri script che utilizzano alcuni generatori di generatoriche sono toolkit di MKS integrati e non in Bash.

Il problema è che nessuno vuole modificare quegli script, nemmeno automaticamente utilizzando uno script.Ciò significa che dovrei definire e usare quegli alias.Ho provato a definire gli alias nel file "/ etc / profilo" di Msys Shell ma senza alcun successo.Ho anche provato ad usare alias (in "/ etc / profilo") ma non funziona neanche.

Qualcuno potrebbe condividere un'idea su come questo potrebbe essere fatto.Mente che gli script esistenti dovranno rimanere lo stesso.

Qualsiasi pensiero o idee sono i benvenuti.

Grazie

È stato utile?

Soluzione 2

Questa risposta mi ha dato la soluzione.Coinvolge la definizione del BASH_ENV variabile prima dell'esecuzione

bash script_name.sh
.

bash_env punta a uno script che imposta l'ambiente della shell.Nel mio caso, per esportare i aliass e anche le funzioni necessarie lo script è simile a questo:

shopt -s expand_aliases

alias my_alias="echo my_alias"

function MyFunction {
    echo "MyFunction(DUMB):" $* 
}

export -f MyFunction
.

Altri suggerimenti

Il /etc/profile viene acquistato solo per le shell di accesso.Se vuoi gli alias nel tuo script, dovresti inserirli in un file separato e dirigerli negli script (s) che ne hanno bisogno.Ad esempio:

aliass.sh :

alias walrus="echo coo coo cah joo"
.

script.sh :

#!/bin/bash

shopt -s expand_aliases
. aliases.sh

walrus
.

e poi

$ ./script.sh
coo coo cah joo
.

Questo è probabilmente il modo più ragionevole per farlo.Se insistono per non modificare gli script a tutti , allora potresti essere in grado di allontanarsi con eseguirli indirettamente come:

bash --rcfile aliases.sh -i script.sh
.

che racconterà Bash di eseguire un guscio interattivo (e quindi espandere gli alias e sorgente il nostro script di alias prima dell'esecuzione dello script.sh).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top