Невозможно отобразить последний выполненный скрипт .sh - PullRequest
1 голос
/ 17 апреля 2019

Использование следующего на

cmd = $ (uname -a)

printf "["!: 0 "]"

дает мне

[cmd1=Linux localhost.localdomain 2.6.32-300.10.1.el5uek #1 SMP Wed Feb 22 17:37:40 EST 2012 x86_64 x86_64 x86_64 GNU/Linux]

но когда это делается в test.sh

#!/bin/bash
output=$(uname -a)


printf "["!:0"]"

Я получаю

[!:0]

Спасибо.

1 Ответ

1 голос
/ 17 апреля 2019

Если вам нужно выполнить предыдущую команду внутри скрипта bash (v4+),

#!/bin/bash -i
# -i: interactive mode, enable history inside script
set -o history  # enable history, for old bash versions

cmd=$(uname -a)
history | sed -n 'x;${s/ *[0-9]\+ *\(\S*\)/\1/p}'  # print the line before last history entry after removing index
...