![别名可以是我在命令行中输入的字符串的一部分吗?](https://linux22.com/image/1029926/%E5%88%AB%E5%90%8D%E5%8F%AF%E4%BB%A5%E6%98%AF%E6%88%91%E5%9C%A8%E5%91%BD%E4%BB%A4%E8%A1%8C%E4%B8%AD%E8%BE%93%E5%85%A5%E7%9A%84%E5%AD%97%E7%AC%A6%E4%B8%B2%E7%9A%84%E4%B8%80%E9%83%A8%E5%88%86%E5%90%97%EF%BC%9F.png)
我是否可以将别名作为我在命令行中输入的字符串的一部分来创建?除此之外,我希望该别名有多个值。
例如,如果我在命令行中输入以下任何字符串:
环境1_机器
名称 环境2_机器
名称 环境3_机器名称
我希望 env1、env2 和 env3 是单个别名,这样当我输入上述三个字符串中的任何一个时,都可以执行相同的别名命令。
因此,如果我在命令行中输入 env1、env2 或 env3 然后接着输入其他内容,我希望执行相同的命令。
答案1
别名由其名称标识,并且具有单一定义。由于它会覆盖同名的命令,因此如果别名名称只是现有命令的一部分,当然不会产生干扰。简短回答因此:是的,别名是您在命令行上键入的字符串的一部分。
设置三个别名,env1
、env2
和env3
。
alias env1="env1_machineName"
alias env2="env2_machineName"
alias env3="env3_machineName"
- 对于日常使用,别名的作用类似于命令。您在 、
env1
或env2
之后输入的任何内容env3
都将传递给别名定义的命令(same_command
在本例中)。 - 请注意,别名仅在当前交互式 shell 中有效。别名仅存在于当前交互式 shell 中。别名不能在脚本中执行,即使在那里定义,除非脚本是在当前 shell 中“获取”的(
source
或.
)。
相反,如果您希望树别名执行相同的命令(因为您也说过)
| 因此,如果我在命令行上输入 env1、env2 或 env3 然后接着输入其他内容,我希望执行相同的命令。
然后只需定义它们三次来表示相同的命令:
alias env1="samecommand"
alias env2="samecommand"
alias env3="samecommand"