diff --git a/save_command_strategies/linux_procfs.sh b/save_command_strategies/linux_procfs.sh index ff8231f..6b64f7e 100755 --- a/save_command_strategies/linux_procfs.sh +++ b/save_command_strategies/linux_procfs.sh @@ -13,7 +13,10 @@ exit_safely_if_empty_ppid() { full_command() { [[ -z "$COMMAND_PID" ]] && exit 0 - cat /proc/${COMMAND_PID}/cmdline | xargs -0 printf "%q " + # See: https://unix.stackexchange.com/a/567021 + # Avoid complications with system printf by using bash subshell interpolation. + # This will properly escape sequences and null in cmdline. + cat /proc/${COMMAND_PID}/cmdline | xargs -0 bash -c 'printf "%q " "$0" "$@"' } main() {