2016-03-22 3 views
0

Ich möchte einen Alias ​​für das Süm Werkzeug machen.Wie kann ich einen Bash-Alias ​​für slem -ntkP '[m] yprocess' erstellen?

Ich muss den ersten Buchstaben des Prozesses zwischen Haken haben, um sich von der Berechnung subtrahieren zu lassen.

So würde Ich mag so etwas wie:

myalias chromium 

(die den folgenden Befehl ruft =>smem -ntkP '[c]hromium')

Ich weiß wirklich nicht, wie das zu tun. Ich habe die Antwort durchsucht, bevor ich meine Frage gestellt habe.

+0

Ein 'Alias' kann keine Argumente annehmen, aber Sie können fast jeden beliebigen Befehl als Alias ​​verwenden. Das Format ist 'alias somename = 'das Zeug, das du tun willst.' Das ist alles, was es zu tun gibt. Sie können sie in Ihre * .bashrc * einschließen, wenn Sie die Gegenwart die ganze Zeit wünschen, usw .. –

Antwort

0

Verwenden Sie Aliasnamen nicht. Dies ist eine FAQ. Verwenden Sie eine Funktion.

sm() { 
    smem -ntkP "[${1:0:1}]${1:1}" 
} 

Im Gegensatz zu Aliasen übernehmen Funktionen Argumente, genau wie Skripte; so $1 ist das erste Argument für die Funktion, und ${1:0:1} ist das erste Zeichen dieses Arguments. (Die ${variable:offset:length} Substring-Substitution ist eine Bash-Erweiterung.)

+0

Es funktioniert, danke !! :) – inanmb

+0

Wenn diese Antwort Ihnen geholfen hat, denken Sie bitte daran, es zu akzeptieren - klicken Sie auf das hohle Häkchen neben der Stimmenzählung, um es als akzeptiert zu markieren. Dies wird mir einige Punkte auf Stack Overflow geben, aber wichtiger ist, dass diese Frage nicht länger ungelöst bleibt. Danke im Voraus! – tripleee

0

aus dem Kommentar Fortsetzung, wenn Sie chromium an Alias ​​möchten und haben es smem -ntkP '[c]hromium' aufrufen, dann könnten Sie etwas tun, ähnlich wie:

alias chromium='smem -ntkP [c]hromium' 

obwohl es ist unklar, welchem ​​Zweck Ihre Einmann-Charakter-Klasse[C] spielt in dieser Rolle ... und das macht wahrscheinlich mehr Sinn geschrieben wie:

alias chromium='smem -ntkP chromium' 

Hinweis: Sie können den Alias ​​in Ihre ~/.bashrc oder in die systemweite Entsprechung auf Ihrem System aufnehmen, damit der Alias ​​immer verfügbar ist. Seien Sie vorsichtig, wenn Sie ausführbare Namen überschrieben wird wie chromium mit einem zweiten Alias ​​(z alias chromium='...') Es ist besser, in den meisten Fällen einen Namen zu wählen, die nicht im Widerspruch tut (und erfordert weniger Typisierung) sagen chrom='...'

+0

Eine regex zu verwenden, die sich nicht wörtlich zusammenfügt, ist eine uralte Technik, um den Befehl in einer Prozessauflistung nicht übereinstimmen zu lassen . – tripleee

+0

Verdammt - * alter Hund *, * neuer Trick * --- es funktioniert! Vielen Dank! –

Verwandte Themen