The update-files option appends the printenv output to the expected command output if the final line is missing a carriage return (CR), i.e.
```{"stage":"test", "runtime":"bash"}
echo -n 'TEST'
```
```shell markdown_runner
TEST### ENV ###
SHELL=/bin/bash
COLORTERM=truecolor
HISTCONTROL=ignoredups
XDG_MENU_PREFIX=gnome-
TERM_PROGRAM_VERSION=1.111.0
QT_IM_MODULES=wayland;ibus
HISTSIZE=1000
HOSTNAME=li-b9f1104c-338e-11b2-a85c-d0ed6b5f92b9.ibm.com
BOB_SHELL_CLI_IDE_SERVER_PORT=33147
JAVA_HOME=/usr/lib/jvm/java-21-openjdk
GUESTFISH_OUTPUT=\e[0m
SSH_AUTH_SOCK=/run/user/1000/gcr/ssh
MEMORY_PRESSURE_WRITE=c29tZSAyMDAwMDAgMjAwMDAwMAA=
SDKMAN_CANDIDATES_DIR=/home/dbruscin/.sdkman/candidates
XMODIFIERS=@im=ibus
DESKTOP_SESSION=gnome
NO_AT_BRIDGE=1
GPG_TTY=/dev/pts/2
EDITOR=/usr/bin/vim
SDKMAN_BROKER_API=https://broker.sdkman.io
PWD=/tmp/845591426
LOGNAME=dbruscin
XDG_SESSION_DESKTOP=gnome
XDG_SESSION_TYPE=wayland
SYSTEMD_EXEC_PID=17197
XAUTHORITY=/run/user/1000/.mutter-Xwaylandauth.QC46M3
GUESTFISH_RESTORE=\e[0m
VSCODE_GIT_ASKPASS_NODE=/usr/share/code/code
GDM_LANG=en_US.UTF-8
HOME=/home/dbruscin
USERNAME=dbruscin
LANG=en_US.UTF-8
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;37;41:su=37;41:sg=30;43:ca=00:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.7z=01;31:*.ace=01;31:*.alz=01;31:*.apk=01;31:*.arc=01;31:*.arj=01;31:*.bz=01;31:*.bz2=01;31:*.cab=01;31:*.cpio=01;31:*.crate=01;31:*.deb=01;31:*.drpm=01;31:*.dwm=01;31:*.dz=01;31:*.ear=01;31:*.egg=01;31:*.esd=01;31:*.gz=01;31:*.jar=01;31:*.lha=01;31:*.lrz=01;31:*.lz=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.lzo=01;31:*.pyz=01;31:*.rar=01;31:*.rpm=01;31:*.rz=01;31:*.sar=01;31:*.swm=01;31:*.t7z=01;31:*.tar=01;31:*.taz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tgz=01;31:*.tlz=01;31:*.txz=01;31:*.tz=01;31:*.tzo=01;31:*.tzst=01;31:*.udeb=01;31:*.war=01;31:*.whl=01;31:*.wim=01;31:*.xz=01;31:*.z=01;31:*.zip=01;31:*.zoo=01;31:*.zst=01;31:*.avif=01;35:*.jpg=01;35:*.jpeg=01;35:*.jxl=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.m4a=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.oga=01;36:*.opus=01;36:*.spx=01;36:*.xspf=01;36:*~=00;90:*#=00;90:*.bak=00;90:*.crdownload=00;90:*.dpkg-dist=00;90:*.dpkg-new=00;90:*.dpkg-old=00;90:*.dpkg-tmp=00;90:*.old=00;90:*.orig=00;90:*.part=00;90:*.rej=00;90:*.rpmnew=00;90:*.rpmorig=00;90:*.rpmsave=00;90:*.swp=00;90:*.tmp=00;90:*.ucf-dist=00;90:*.ucf-new=00;90:*.ucf-old=00;90:
CLAUDE_CODE_USE_VERTEX=1
XDG_CURRENT_DESKTOP=GNOME
MEMORY_PRESSURE_WATCH=/sys/fs/cgroup/user.slice/user-1000.slice/user@1000.service/app.slice/dbus-:1.2-org.gnome.Nautilus@1.service/memory.pressure
WAYLAND_DISPLAY=wayland-0
BOB_SHELL_CLI_IDE_WORKSPACE_PATH=/home/dbruscin/Workspace/brusdev/arkmq-org/activemq-artemis-operator
GUESTFISH_PS1=\[\e[1;32m\]><fs>\[\e[0;31m\]
GIT_ASKPASS=/usr/share/code/resources/app/extensions/git/dist/askpass.sh
TPM2_PKCS11_LOG_LEVEL=0
INVOCATION_ID=3e644ae487f042a1a5c7a1d7a5287ec4
GROOVY_HOME=/home/dbruscin/.sdkman/candidates/groovy/current
MANAGERPID=2474
ANTHROPIC_VERTEX_PROJECT_ID=itpc-gcp-cp-pe-eng-claude
CHROME_DESKTOP=code.desktop
WORKING_DIR=/home/dbruscin/Workspace/brusdev/arkmq-org/activemq-artemis-operator
MOZ_GMP_PATH=/usr/lib64/mozilla/plugins/gmp-gmpopenh264/system-installed
VSCODE_GIT_ASKPASS_EXTRA_ARGS=
GNOME_SETUP_DISPLAY=:1
VSCODE_PYTHON_AUTOACTIVATE_GUARD=1
CLAUDE_CODE_SSE_PORT=63866
XDG_SESSION_CLASS=user
TERM=xterm-256color
LESSOPEN=||/usr/bin/lesspipe.sh %s
USER=dbruscin
VSCODE_GIT_IPC_HANDLE=/run/user/1000/vscode-git-cad0a8528e.sock
SDKMAN_DIR=/home/dbruscin/.sdkman
DISPLAY=:0
SHLVL=2
GUESTFISH_INIT=\e[1;34m
TSS2_LOG=fapi+NONE
QT_IM_MODULE=ibus
SDKMAN_CANDIDATES_API=https://api.sdkman.io/2
MANAGERPIDFDID=2475
FC_FONTATIONS=1
XDG_RUNTIME_DIR=/run/user/1000
DEBUGINFOD_URLS=ima:enforcing https://debuginfod.fedoraproject.org/ ima:ignore https://debuginfod.usersys.redhat.com/
DOCKER_HOST=unix:///run/user/1000/podman/podman.sock
DEBUGINFOD_IMA_CERT_PATH=/etc/keys/ima:
TPM2_PKCS11_STORE=/etc/tpm2_pkcs11
CLOUD_ML_REGION=us-east5
VSCODE_GIT_ASKPASS_MAIN=/usr/share/code/resources/app/extensions/git/dist/askpass-main.js
JOURNAL_STREAM=9:154836
XDG_DATA_DIRS=/home/dbruscin/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share/:/usr/share/
GDK_BACKEND=wayland
PATH=/opt/apache-maven-3.9.12/bin/:/home/dbruscin/go/bin:/home/dbruscin/.config/Code/User/globalStorage/github.copilot-chat/debugCommand:/home/dbruscin/.config/Code/User/globalStorage/github.copilot-chat/copilotCli:~/sdk/operator-sdk-v1.28.0:/home/dbruscin/.sdkman/candidates/groovy/current/bin:/opt/apache-maven-3.9.12/bin/:/home/dbruscin/go/bin:/home/dbruscin/.local/bin:/home/dbruscin/bin:/usr/local/bin:/usr/bin:/home/dbruscin/.npm-global/bin:/home/dbruscin/.npm-global/bin
GDMSESSION=gnome
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
SDKMAN_PLATFORM=linuxx64
MAIL=/var/spool/mail/dbruscin
GIO_LAUNCHED_DESKTOP_FILE_PID=17298
GIO_LAUNCHED_DESKTOP_FILE=/usr/share/applications/code.desktop
GOPATH=/home/dbruscin/go
TERM_PROGRAM=vscode
_=/usr/bin/printenv
```
The update-files option appends the printenv output to the expected command output if the final line is missing a carriage return (CR), i.e.