官术网_书友最值得收藏!

  • Bash Quick Start Guide
  • Tom Ryder
  • 342字
  • 2021-07-23 16:58:58

The type command

The type command, given the name of any command or commands, gives you information about what kind of command it is:

bash$ type echo
echo is a shell builtin
bash$ type grep
grep is /bin/grep

It identifies shell keyword, too:

bash$ type for
for is a shell keyword

We can define a function and an alias to test that it correctly detects those:

bash$ myfunc() { : ; }
bash$ type myfunc
myfunc is a function
myfunc ()
{
:
}
bash$ alias myalias=: bash$ type myalias myalias is aliased to `:'

The type command has a few useful options. If you use the -t option, you can get a single word specifying the command type. This is sometimes useful in scripts:

bash$ type -t echo
builtin
bash$ type -t grep
file

If you use the -a option, you can see all commands that have the same name. Bash will print them in order of preference. For example, the true name probably has both a builtin command and a system command on your system:

bash$ type -a true
true is a shell builtin
true is /bin/true

Bash will always prefer builtin commands for a given name over system commands. If you want to call the system's implementation of true, you could do it by specifying the full path to the program:

$ /bin/true
Try type -a [ and then type -a [[. Are you surprised by any of the output?

Another useful switch for type is -P, which will look for a system command for the given name, and print out the path to it if found:

bash$ type -P true
/bin/true

Note that the /bin/true path was returned, even though true is also the name of a shell builtin.

There is a reason we put the type command first in this list. After help, it is the most useful Bash command for understanding the language, and clearing up the biggest source of confusion about the language: When I run this command, what is actually running?

主站蜘蛛池模板: 丽水市| 吕梁市| 达日县| 常熟市| 弋阳县| 连云港市| 漳浦县| 奉贤区| 井陉县| 永州市| 成武县| 浮梁县| 句容市| 寻甸| 冷水江市| 丹阳市| 天等县| 利辛县| 墨脱县| 东丰县| 韶关市| 桐梓县| 任丘市| 泸溪县| 黑河市| 炎陵县| 卢龙县| 安溪县| 昌邑市| 上林县| 屏东市| SHOW| 泰州市| 潜山县| 东兰县| 贵州省| 德格县| 伊吾县| 黎平县| 鞍山市| 抚顺市|