【问题标题】:What is the shortest way to create an alias that take a parameter? [duplicate]创建带参数的别名的最短方法是什么? [复制]
【发布时间】:2018-05-12 04:19:58
【问题描述】:

我有一个命令

lsof -i :3000

当我运行它时,我得到了这个

⚡️lsof -i :3000                                                                                                             
COMMAND  PID  USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME                                                              
node    6803 bheng   13u  IPv6 0xa757c4ba1a0bf589      0t0  TCP *:hbci (LISTEN)                                                   

我想为这个命令创建一个别名,它将一个参数作为我的端口号。

我不打算为此创建一个函数或任何东西。


我试过了

alias checkport='lsof -i :$1'

我想这样使用它

checkport 3000

结果

⚡️checkport 3000                                                                                                            
lsof: unacceptable port specification in: -i :                                                                                    
lsof 4.89                                                                                                                         
 latest revision: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/                                                                 
 latest FAQ: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/FAQ                                                                   
 latest man page: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/lsof_man                                                         
 usage: [-?abhlnNoOPRtUvV] [+|-c c] [+|-d s] [+D D] [+|-f[cgG]]                                                                   
 [-F [f]] [-g [s]] [-i [i]] [+|-L [l]] [+|-M] [-o [o]] [-p s]                                                                     
 [+|-r [t]] [-s [p:s]] [-S [t]] [-T [t]] [-u s] [+|-w] [-x [fl]] [--] [names]                                                     
Use the ``-h'' option to get more help information.                                                                               

【问题讨论】:

    标签: linux bash unix alias


    【解决方案1】:

    别名不带参数。而是定义一个函数。

    checkport () {
        lsof -i ":$1"
    }
    

    但是,由于别名的“参数”只是简单地附加到别名扩展的末尾,您也可以定义

    alias checkport='lsof -i :'
    

    两者的使用方式相同:checkpoint 3000

    【讨论】:

    • 哦.. 定义了那个函数后怎么使用?
    • 您使用函数的方式与使用任何命令的方式相同:checkpoint 3000
    • 那个函数应该去哪里?在某个文件的某个地方?能详细点吗?
    • 您可以在计划定义别名的任何地方定义它。
    • 在 .bash_profile 中,明白了。
    猜你喜欢
    • 1970-01-01
    • 2012-10-22
    • 2012-12-15
    • 1970-01-01
    • 2018-04-05
    • 2012-08-22
    • 2013-06-18
    • 2016-04-13
    • 2013-02-10
    相关资源
    最近更新 更多