Frage

Ich habe folgendes Problem:Ich habe viele Testskripte, die derzeit ausgeführt werden MKS-Toolkit.Wir haben es geschafft, diese Skripte mit dem auszuführen Mingw-Shell (msys) aber es gibt andere Skripte, die davon Gebrauch machen aliases, die im MKS Toolkit integriert sind und nicht in Bash.

Das Problem ist, dass niemand diese Skripte ändern möchte, nicht einmal automatisch durch die Verwendung eines Skripts.Das bedeutet, dass ich diese Aliase definieren und verwenden sollte.Ich habe versucht, die Aliase in der Datei „/etc/profile“ der msys-Shell zu definieren, aber ohne Erfolg.Ich habe es auch versucht zu verwenden shopt -s expand_aliases (in „/etc/profile“), aber das funktioniert auch nicht.

Könnte jemand eine Idee haben, wie das gemacht werden könnte?Beachten Sie, dass die vorhandenen Skripte gleich bleiben müssen.

Alle Gedanken oder Ideen sind willkommen.

Danke

War es hilfreich?

Lösung 2

Diese Antwort gab mir die Lösung.Es beinhaltet das Definieren des variablen generationstechnischenetagcodes, bevor

ausgeführt wird generasacodicetagpre.

bash_env zeigt auf ein Skript, das die Umwelt der Shell setzt.In meinem Fall, um die generationspflichtigen Codee und auch die erforderlichen Funktionen zu exportieren, sieht das Skript so aus:

generasacodicetagpre.

Andere Tipps

Der /etc/profile wird nur für Login-Shells bereitgestellt.Wenn Sie die Aliase in Ihrem Skript haben möchten, sollten Sie sie in einer separaten Datei ablegen und sie in die Skripte einbinden, die sie benötigen.Zum Beispiel:

Aliase.sh:

alias walrus="echo coo coo cah joo"

script.sh:

#!/bin/bash

shopt -s expand_aliases
. aliases.sh

walrus

und dann

$ ./script.sh
coo coo cah joo

Das ist wahrscheinlich der vernünftigste Weg, es zu tun.Wenn Sie darauf bestehen, die Skripte nicht zu ändern überhaupt, dann könnten Sie möglicherweise damit durchkommen, sie indirekt wie folgt auszuführen:

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

Dadurch wird Bash angewiesen, eine interaktive Shell auszuführen (und somit Aliase zu erweitern und unser Aliase-Skript als Quelle zu verwenden, bevor script.sh ausgeführt wird).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top