我想在bash(.bashrc)中这样的东西,所以根据用户登录的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 计算机
进行记录'cd / var / lib / code / mike '如果从 209 计算机
进行记录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]##*.}]}
答案 0 :(得分:3)
尝试一下:
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
答案 1 :(得分:1)
试试这个:
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}'`
答案 2 :(得分: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