ITPub博客

首页 > Linux操作系统 > Linux操作系统 > [20240827]linux下如何规避alias的命令.txt

[20240827]linux下如何规避alias的命令.txt

原创 Linux操作系统 作者:lfree 时间:2024-09-01 17:08:41 0 删除 编辑

[20240827]linux下如何规避alias的命令.txt

--//以前我定义的别名:
$ alias zzdate
alias zzdate='date +'\''trunc(sysdate)+%H/24+%M/1440+%S/86400 == %Y/%m/%d %T'\'''

$ zzdate
trunc(sysdate)+17/24+08/1440+20/86400 == 2024/08/27 17:08:20


$ which zzdate
alias zzdate='date +'\''trunc(sysdate)+%H/24+%M/1440+%S/86400 == %Y/%m/%d %T'\'''
        /bin/date


$ which -a zzdate
alias zzdate='date +'\''trunc(sysdate)+%H/24+%M/1440+%S/86400 == %Y/%m/%d %T'\'''
        /bin/date
        /usr/bin/date
/usr/local/bin/zzdate
/usr/local/bin/zzdate
/usr/local/bin/zzdate
--//注:使用tmux导致的情况,环境变量在重新登录时重复了.

--//实际上后来做个一些修改,写成脚本放在/usr/local/bin目录下,主要加入timestamp部分,alias很难写。
# cat /usr/local/bin/zzdate
#! /bin/bash
/bin/date +"trunc(sysdate)+%H/24+%M/1440+%S/86400 == %Y/%m/%d %T === %Y-%m-%d %T== \"timestamp'%Y-%m-%d %T'\""

--//如果要绕过alias,执行真正的程序,如何执行呢?

--//方法1,选择全路径:
$ /usr/local/bin/zzdate
trunc(sysdate)+17/24+19/1440+38/86400 == 2024/08/27 17:19:38 === 2024-08-27 17:19:38== "timestamp'2024-08-27 17:19:38'"

--//方法2,使用反斜线\:
$ \zzdate
trunc(sysdate)+17/24+19/1440+41/86400 == 2024/08/27 17:19:41 === 2024-08-27 17:19:41== "timestamp'2024-08-27 17:19:41'"

--//在.bash_profile最后加入,避免PATH定义重复.
export PATH=$(echo $PATH | tr ":" "\n" | sort| uniq | xargs | tr ' ' ':')

$ which -a zzdate
alias zzdate='date +'\''trunc(sysdate)+%H/24+%M/1440+%S/86400 == %Y/%m/%d %T'\'''
        /bin/date
        /usr/bin/date
/usr/local/bin/zzdate


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/267265/viewspace-3026530/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
熟悉oracle相关技术,擅长sql优化,rman备份与恢复,熟悉linux shell编程。

注册时间:2008-01-03

  • 博文量
    4006
  • 访问量
    7970745