timja / jenkins-gh-issues-poc-06-18

0 stars 0 forks source link

[JENKINS-14731] Option for shell script builder to run as +x #2470

Open timja opened 12 years ago

timja commented 12 years ago

Often you do not want each command in a shell script to be echoed to the console log. There may be a lot of commands, including ones which just set an environment variable; expansions and loops can be confusing; or some commands may include private information such as passwords which should not be displayed.

You can already prefix your script text with

set +x

which does the job, but this command is echoed which is annoying, and unless you are experienced with shell scripting you may never have heard of this builtin (or may need to refer to sh.1 to remember the syntax).

Would be nicer to just have a checkbox available for the shell script builder which would control whether to echo commands or not. Default on (-x) as now. If off, simply do not pass -x to sh.


Originally reported by jglick, imported from: Option for shell script builder to run as +x
  • status: Open
  • priority: Minor
  • resolution: Unresolved
  • imported: 2022/01/10
timja commented 10 years ago

danielbeck:

Similar issue with batch and `@echo off`.

The question is whether the built-in build steps should support options at all. So far, they have none.

timja commented 9 years ago

sag47:

Prepend your script with a shebang. Then it will behave as you expect in bash. For batch I couldn't tell you. e.g.

#!/bin/bash
some script

This allows you to do fancy stuff with your scripts to set up the environment before executing the build. e.g.

#!/bin/bash -l
export PS4='$ '
echo -n "Hostname: "
hostname
echo -n "Distro: "
head -n1 /etc/issue
echo -n "Kernel: "
uname -rms
echo -n "Bash: "
bash --version | head -n1
#BUILD_RANDOM will stay consistent throughout the build.  Use the ${RANDOM} variable if you need constantly changing randoms.
export BUILD_RANDOM="${RANDOM}"
echo "BUILD_RANDOM: ${BUILD_RANDOM}"
set -axeE

some build script