我想在 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
所以最后的别名看起来像g
'cd/var/lib/code/radek' 如果从 210 计算机登录
'cd/var/lib/code/mike' 如果从 209 计算机登录
感谢@Dennis Williamson 的最终代码
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
关于linux - bash 中的字符串/数组操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3412773/