shell command命令

近期遇到一个比较少见的命令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
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值