我们试图找到一个 mercurial url 的用户名:
default = ssh://someone@acme.com//srv/hg/repo
Run Code Online (Sandbox Code Playgroud)
假设总是有一个用户名,我想出了:
tmp=${a#*//}
user=${tmp%%@*}
Run Code Online (Sandbox Code Playgroud)
有没有办法在一行中做到这一点?
假设您的字符串在这样的变量中:
url='default = ssh://someone@acme.com//srv/hg/repo'
Run Code Online (Sandbox Code Playgroud)
你可以做:
[[ $url =~ //([^@]*)@ ]]
Run Code Online (Sandbox Code Playgroud)
那么你的用户名就在这里:
echo ${BASH_REMATCH[1]}
Run Code Online (Sandbox Code Playgroud)
这适用于 Bash 3.2 及更高版本。