在.bashrc中使用相同别名运行不同机器上的不同命令

时间:2012-07-11 00:55:42

标签: bash alias

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

但是有可能检查当前会话正在打开的机器,然后只获取与该机器对应的别名。像bashrc中的下面的东西

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

3 个答案:

答案 0 :(得分:4)

您可以使用主机名 e.g。

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

答案 1 :(得分:1)

假设您使用Linux,则可以根据以太网卡的MAC地址区分您的计算机。 MAC地址通常是唯一的,除非你以某种方式搞砸了它。

获取MAC这样的地址:

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

然后你可以做类似的事情:

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

答案 2 :(得分:1)

您可以将.bashrc源文件另一个可以具有唯一名称的初始文件

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