GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Funktion in der Unix/Linux-Befehlszeile definieren (z. B. BASH)

Zitieren meiner Antwort auf eine ähnliche Frage auf Ask Ubuntu:

Funktioniert in bash sind im Wesentlichen zusammengesetzte Befehle (oder Codeblöcke). Ab man bash :

Compound Commands
   A compound command is one of the following:
   ...
   { list; }
          list  is simply executed in the current shell environment.  list
          must be terminated with a newline or semicolon.  This  is  known
          as  a  group  command. 

...
Shell Function Definitions
   A shell function is an object that is called like a simple command  and
   executes  a  compound  command with a new set of positional parameters.
   ... [C]ommand is usually a list of commands between { and },  but
   may  be  any command listed under Compound Commands above.

Es wird kein Grund angegeben, es ist nur die Syntax.

Versuchen Sie es mit einem Semikolon nach wc -l :

numresults(){ ls "$1"/RealignerTargetCreator | wc -l; }

Verwenden Sie nicht ls | wc -l da es zu falschen Ergebnissen führen kann, wenn Dateinamen Zeilenumbrüche enthalten. Sie können stattdessen diese Funktion verwenden:

numresults() { find "$1" -mindepth 1 -printf '.' | wc -c; }

Linux
  1. So löschen Sie den BASH-Befehlszeilenverlauf in Linux

  2. 5 Standardvervollständigung Verfügbar in der Linux Bash-Befehlszeile

  3. UNIX / Linux :Beispiele für Bash-Verlaufsbefehle zum Wiederholen der letzten Befehle

  4. 6 Verkettungsoperatoren für Bash-Shell-Befehlszeilen unter Linux

  5. Nur Befehlszeile UNIX/Linux OS

mkdir-Befehl unter Linux/Unix

Grep-Befehl unter Linux/UNIX

ls-Befehl unter Linux/UNIX

cp-Befehl unter Linux/UNIX

Finden Sie Befehl in Linux/UNIX

15 Praktische Grep-Befehlsbeispiele in Linux / UNIX