【问题标题】:running different command on different machine with same alias name in .bashrc在 .bashrc 中具有相同别名的不同机器上运行不同的命令
【发布时间】:2012-07-11 18:56:01
【问题描述】:

根据机器的不同,我必须访问同名但来自不同目录的文件。所以目前我每台机器都有一个用于访问文件的别名。

但是是否可以检查正在打开当前会话的机器,然后只检查与该机器对应的源别名。类似下面的 bashrc

If(machine1) 
   alias a1='command1'
else if (machine2)
   alias a1='command2'
else
   alias a1='command3'

【问题讨论】:

  • 是的,你是如何访问机器的?

标签: bash alias


【解决方案1】:

您可以使用主机名 例如

case $(hostname) in
    host1)  alias a1='echo host1';;
    host2)  alias a1='echo host2';;
    host3)  alias a1='echo host3';;
esac

【讨论】:

    【解决方案2】:

    假设您在 Linux 下,您可以根据您的以太网卡的MAC 地址来区分您的机器。 MAC 地址通常是唯一的,除非您以某种方式弄乱了它。

    像这样获取MAC地址:

    MACHINEID=$(cat /sys/class/net/eth0/address)
    

    然后你可以这样做:

    if [ $MACHINEID = "mac_address_of_machine_1_here" ];
    then
    #whatever
    fi
    

    【讨论】:

      【解决方案3】:

      您可以让您的 .bashrc 获取另一个可以具有唯一名称的初始化文件

      # .bashrc
      . .bash_$(hostname)
      
      # .bash_host1
      alias a1=command1
      
      # .bash_host2
      alias a1=command2
      

      【讨论】:

        猜你喜欢
        • 2014-11-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-08
        • 2012-09-07
        相关资源
        最近更新 更多