我想设置一个别名以在 CLI 上从两个 WordPress 实例切换。除了各自站点的名称外,它们每个都有相同的路径,例如:
srv/deployment/work/sitename1/wp-content/uploads/2018/
srv/deployment/work/sitename2/wp-content/uploads/2018/
如何创建一个别名,使用当前位置的“pwd”和 cd 是到另一个站点上完全相同的位置吗?
最佳答案
用 bash 函数代替别名怎么样,给你更多的自由。
将此 bash 函数保存到类似 switchsite.sh
的文件中。根据您的需要修改变量。然后将它加载到你的 bash 中:
source switchsite.sh
如果你在 /srv/deployment/work/sitename1/wp-content/uploads/2018
,做
switchsite sitename2
您将位于 /srv/deployment/work/sitename2/wp-content/uploads/2018
。
switchsite() {
# modify this to reflect where your sites are located, no trailing slash
where_my_sites_are=/srv/deployment/work
# modify this so it includes all characters that can be in a site name
pattern_matching_sitenames=[a-z0-9_\-]
# this is the first argument when the function is called
newsite=$1
# this replaces the site name in the current working directory
newdir=$(pwd | sed -n -e "s@\($where_my_sites_are\)/\($pattern_matching_sitenames\+\)/\(.*\)@\1/$newsite/\3@p")
cd $newdir
}
工作原理:sed 表达式将 pwd
的输出分成三部分:当前站点名称之前的内容、当前站点名称以及之后的内容。然后 sed 将它与新站点名称放回一起。只需确保该模式可以匹配您网站名称中可能出现的所有字符。研究character classes了解详情。
关于linux - 如何使用相对密码 + 字符串创建别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57429918/