设置用于获取脚本的别名,以在具有受限权限的詹金斯中运行该脚本

设置用于获取脚本的别名,以在具有受限权限的詹金斯中运行该脚本

我想跑步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

  1. 创建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

来源:

相关内容