我想在bash(.bashrc)中这样的东西,所以别名是根据用户login的comp设置的。我不知道如何从10.0.0.210获得210,然后通过列表'user = xxx'
$radek ='210' $mike ='209' #SSH_CLIENT='10.0.0.210 53039 22' <--- system variable $user = based on the 4th part of IP so $user = radek if 210 $user = mike if 209 alias sites='cd /var/lib/code/'+$user
'cd / var / lib / code / radek '如果从210电脑login
'cd / var / lib / code / mike '如果从209电脑login
users[210]=radek users[209]=mike octet=($SSH_CLIENT) # split the value on spaces #octed=${octet[0]##*.} # extract the last octet from the ip address alias sites='cd /var/lib/code/'${users[${octet[0]##*.}]}
试试这个:
users[210]=radek users[209]=mike octet=($SSH_CLIENT) # split the value on spaces octet=${octet[0]##*.} # extract the last octet from the ip address alias sites='cd /var/lib/code/'${user[octet]}
另一种分配用户的方式:
names=(bob jim anne kelly rick) octet=211 for name in ${names[@]} do users[octet++]=$name if (( octet > 255 )) then echo "Error: range limit exceeded" break fi done
尝试这个:
export user=`env|grep -i SSH_CLIENT|cut -d' ' -f1|cut -d'.' -f4`
并删除别名中的+
。 它应该是
alias sites='cd /var/lib/code/'$user
根据你的编辑希望这应该工作:
temp_user=`env|grep -i SSH_CLIENT|cut -d' ' -f1|cut -d'.' -f4` user=`env|awk -F= "/=$temp_user/"'{print $1}'`
如果你不需要格式的存储用户到IP映射的硬性要求,下面的示例脚本将工作:
user_210="radek" user_209="mike" function define_alias { local ip_last_part=`echo $1 | cut -d ' ' -f1 | cut -d '.' -f4` eval user=$`echo "user_$ip_last_part"` echo "User '$user' identified for ip ending in '$ip_last_part'" alias sites="cd /var/lib/code/$user" echo "Alias defined : `alias sites`" } #Exampe usage : # will come from env export SSH_CLIENT='10.0.0.210 53039 22' define_alias $SSH_CLIENT export SSH_CLIENT='10.0.0.209 53039 22' define_alias $SSH_CLIENT
如果你不想使用这个函数,你可以在函数的外面复制代码,并使用多米诺骨牌的建议来获取IP的最后部分。 喜欢这个 :
user_210="radek" user_209="mike" ip_last_part=`env | grep -i SSH_CLIENT | cut -d ' ' -f1 | cut -d '.' -f4` eval user=$`echo "user_$ip_last_part"` echo "User '$user' identified for ip ending in '$ip_last_part'" alias sites="cd /var/lib/code/$user" echo "Alias defined : `alias sites`"
HTH,
Madhur Tanwani