shell command命令

xiaoxiao2021-02-28  92

近期遇到一个比较少见的命令command,详细如下:

command 是一些shell的内建命令

我本机使用的是dash,服务器使用的是bash,其他shell没有测试 - dash

user@PC:~/debug/bin/test$ ll /bin/sh lrwxrwxrwx 1 root root 4 128 2015 /bin/sh -> dash* user@PC:~/debug/bin/test$ type command command 是 shell 内建 bash xl@Exdroid42:~/work/tina$ ll /bin/sh lrwxrwxrwx 1 root root 9 420 16:15 /bin/sh -> /bin/bash* xl@Exdroid42:~/work/tina$ type command command 是 shell 内建

command命令的作用

无视shell脚本中的“同名”函数,执行特定的命令

dash 下面摘自man dash command [-p] [-v] [-V] command [arg ...] Execute the specified command but ignore shell functions when searching for it. (This is useful when you have a shell function with the same name as a builtin com‐ mand.) -p search for command using a PATH that guarantees to find all the standard util‐ ities. -V Do not execute the command but search for the command and print the resolution of the command search. This is the same as the type builtin. -v Do not execute the command but search for the command and print the absolute pathname of utilities, the name for builtins or the expansion of aliases. bash 下面摘自man bash command [-pVv] command [arg ...] Run command with args suppressing the normal shell function lookup. Only builtin commands or commands found in the PATH are executed. If the -p option is given, the search for command is performed using a default value for PATH that is guaran‐ teed to find all of the standard utilities. If either the -V or -v option is sup‐ plied, a description of command is printed. The -v option causes a single word indicating the command or filename used to invoke command to be displayed; the -V option produces a more verbose description. If the -V or -v option is supplied, the exit status is 0 if command was found, and 1 if not. If neither option is sup‐ plied and an error occurred or command cannot be found, the exit status is 127. Otherwise, the exit status of the command builtin is the exit status of command.

测试

在test.sh中构建ls函数,测试command命令的作用

user@PC:~/debug/bin/test$ ls test.sh user@PC:~/debug/bin/test$ cat test.sh function ls() { echo "haha" } echo "--1--" ls echo "--2--" command ls echo "--3--" echo command ls echo "--4--" $(echo command ls) user@PC:~/debug/bin/test$ ./test.sh --1-- haha --2-- test.sh --3-- command ls --4-- test.sh
转载请注明原文地址: https://www.6miu.com/read-72436.html

最新回复(0)