我想跑步source ./script_name
而不是./script_name
。我可以为此创建一个别名吗?
Jenkins 作业将运行脚本./script_name
,我无法编辑它将在服务器上运行脚本的方式。我需要将此脚本作为源运行,以便在同一 shell 中运行命令。因此,每当 Jenkins 运行时,./my_script
它也会依次运行source ./my_script
。
答案1
你有一个bash脚本在/home/user/
和bash脚本你myscript
可以设置一个别名来运行
/home/user/myscript
#!/bin/bash
echo "WELCOME BASH"
跑步chmod +x /home/user/myscript
创建
alias
并通过别名执行临时
alias
— 在终端中运行alias myscript="/home/user/myscript"
永久保存
alias
在~/.bashrc
(/home/user/.bashrc) — 将其添加/编辑到您的.bashrc
文件中alias myscript="/home/user/myscript"
现在在终端中运行:
myscript
选项1
将其添加到您的 bashrc 中:
alias myscript="source /home/user/./myscript"
或者
alias my_script="source ./my_script"
跑my_script
,跑source ./my_script
这仅适用于您的用户帐户。如果您想要所有用户的别名,则需要将别名添加到系统范围的 shell 配置文件中,/etc/bash.bashrc
或者bash
要求管理员添加它。
选项2
登录到您的 jenkins 服务器并导航到您要使用 source 命令的作业的作业配置页面
在作业配置的构建部分中,添加一个新的构建步骤类型执行外壳
在命令字段,定义一个包装源命令的函数
例子:
function my_source() {
source ./home/user/my_script
# or
source /home/user/./myscript
# or
source /home/user/myscript
}
将此函数分配给临时或永久别名
alias my_alias='my_source'
选项3
创建包装脚本
#!/bin/bash
source /home/user/my_script
使文件可执行
chmod +x my_script
现在你可以运行了./my_script
检查脚本是否位于与原始脚本相同的目录中,或者位于系统 PATH 变量中包含的目录中
选项4
当 Jenkins 作业尝试运行时./my_script
,它实际上会source ./my_script
以此运行。
创建到您的脚本的符号链接:
ln -s $(realpath my_script) source
当 Jenkins 作业运行时./my_script
,它将source ./my_script
从您创建的符号链接运行
谨慎使用此功能,完成工作后清理符号链接
rm source
来源: