linux - bash 中的字符串/数组操作?

标签 linux bash

我想在 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/

相关文章:

java - 每次使用特定参数启动 Java

python - 如何使用 bash 脚本重新启动在屏幕内运行的 python 脚本?

c++ - 如何设置 eclipse 以使用 arm 的代码源工具链

linux - 远程 ssh 命令未退出

arrays - 在 shell 脚本中将多行输出解析为数组

linux - 设置日志文件的最大行数

python - 练习 Linux Shell 脚本编写

用于监视文件更改的 Linux bash 脚本 -> 如何获取已更改的文件名

Linux,如何在管道命令中使用 tee

linux - Tasklet 如何工作?