linux - 如何使用相对密码 + 字符串创建别名

标签 linux command-line alias pwd

我想设置一个别名以在 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/

相关文章:

regex - 需要帮助使用 grep 从列表中提取名称

c - K&R 练习 1-8。我可以让我的代码正常工作

macos - 获取包含要执行的管道的 zsh 别名

c++ - 为模板类使用别名

c++ - 如何确定哪个动态库负责创建指针?

regex - 如何用斜杠来grep一个精确的字符串?

linux - 无法完成 Eucalyptus Fast-Start 3.4.2 Cloud-In-A-Box 安装

sql - 查询中更清晰的案例陈述?

linux - sed 命令不接受 ksh 中带有 '.' 的子字符串

ios - 不能 telnet gateway.sandbox.push.apple.com 2195?