Each bash shell function has the following set of shell variables:
Tutorial details | |
---|---|
Difficulty | Easy (rss) |
Root privileges | No |
Requirements | Bash |
Time | N/A |
Example
Create a shell script as follows:
#!/bin/bash # Purpose: Demo bash function # Author: nixCraft # ----------------------------- ## Define a function called foo() foo(){ echo "Function name: ${FUNCNAME}" echo "The number of positional parameter : $#" echo "All parameters or arguments passed to the function: '$@'" echo } ## Call or invoke the function ## ## Pass the parameters or arguments ## foo nixCraft foo 1 2 3 4 5 foo "this" "is" "a" "test"
Run it as follows:
$ chmod +x script.name.here
$ ./script.name.here
Sample outputs:
See also
- Chapter 9: Functions from the Linux shell scripting wiki.
- man page – bash
🐧 Get the latest tutorials on Linux, Open Source & DevOps via RSS feed or Weekly email newsletter.
🐧 1 comment so far... add one ↓
🐧 1 comment so far... add one ↓
Category | List of Unix and Linux commands |
---|---|
File Management | cat |
Firewall | Alpine Awall • CentOS 8 • OpenSUSE • RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04 |
Network Utilities | dig • host • ip • nmap |
OpenVPN | CentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04 |
Package Manager | apk • apt |
Processes Management | bg • chroot • cron • disown • fg • jobs • killall • kill • pidof • pstree • pwdx • time |
Searching | grep • whereis • which |
User Information | groups • id • lastcomm • last • lid/libuser-lid • logname • members • users • whoami • who • w |
WireGuard VPN | Alpine • CentOS 8 • Debian 10 • Firewall • Ubuntu 20.04 |
Try using the special variable ${#}.
function foo {
echo “N. of Args: ${#}”
}
$ foo a b c
3