2016-04-29 9 views
0

Ich habe in meinem Skript den Befehl alias filecreate='touch $1' verwendet, um eine neue Datei in meinem aktuellen Arbeitsverzeichnis mit Hilfe von filecreate als benutzerdefinierten Befehl zu erstellen. Aber wenn ich das Skript ausführe, zeigt es einen Fehler an. Auch wie mache ich den Befehl, um 2 Parameter zu akzeptieren, der Dateiname und andere der Pfadname.Benutzerdefinierte Befehlserstellung

+3

Welches Skript? Welcher Fehler? – kaylum

+0

'Alias' kann keine Parameter akzeptieren. Wenn Sie Parameter verarbeiten müssen, verwenden Sie eine Funktion. – fedorqui

+0

Selben: http://StackOverflow.com/Q/36859162/1098603 – Matthieu

Antwort

3

alias filecreate=touch

oder in seiner Funktion äquivalent:

filecreate(){ touch "[email protected]"; } 

wird, eine beliebige Anzahl von Argumenten akzeptieren und sie zu touch passieren.

Positionsargument-Erweiterungen gehören normalerweise nicht in Aliase, da Aliase im Gegensatz zu Funktionen keine eigenen Positionsargumente erhalten. Aliase sind einfache Text-Erweiterungen.

Ihre

alias filecreate='touch "$1"' 

wenn wie so laufen:

filecreate SomeFile 

erweitern würde einfach zu

filecreate "$1" SomeFile #$1 comes from the caller 

Dies unterscheidet sich von Funktionen und Skripten, die ihr eigenes Argument Array erhalten Sie.

+0

[Original Frage] (http://StackOverflow.com/q/36859162/1098603);) Auch, ich denke, du meinst, es erweitert sich zu "touch" $ 1 "SomeFile" – Matthieu

+0

Vielen Dank, alle schätzen Ihre Hilfe. @PSkocik Ich habe die Funktion mit filecreate erstellt. –

Verwandte Themen