Вот решение, которое вы искали:
function xtrace() {
# Print the line as if xtrace was turned on, using perl to filter out
# the extra colon character and the following "set +x" line.
(
set -x
# Colon is a no-op in bash, so nothing will execute.
: "$@"
set +x
) 2>&1 | perl -ne 's/^[+] :/+/ and print' 1>&2
# Execute the original line unmolested
"$@"
}
Исходная команда выполняется в той же оболочке при преобразовании идентичности. Непосредственно перед запуском вы получаете нерекурсивный xtrace аргументов. Это позволяет вам отслеживать нужные вам команды, не рассылая stederr дубликатами каждой команды "echo".
# Example
echo "About to do something complicated ..."
xtrace do_something_complicated
El contenido del archivo no se perderá y ni siquiera se modificará. Lo único que sucede cuando ejecuta touch
en un archivo ya existente es que las marcas de tiempo de acceso y modificación del archivo se actualizan a la hora actual.
Este es el uso principal de la utilidad touch
y se explica en el manual touch
(man touch
).