Tato otázka zde již má odpověď :Je ve skriptech zakázáno rozšíření historie?
(1 odpověď)
Uzavřeno před 1 rokem.
Linux
(1 odpověď)
Uzavřeno před 1 rokem.
Níže uvedený příkaz funguje v příkazovém řádku
rsync -avh -r /Source/09_03_2016/ /Destination/
echo $(basename !:3)
Výstup 09_03_2016
Ale když to udělám ve skriptu shellu, nefunguje to
#! /bin/bash
/usr/bin/rsync -avh -r /Source/09_03_2016 /Destination/;
echo $(basename !:3)
Výstup !:3
Přijatá odpověď:
Ve skriptu použijte následující příkazy:
set -o history
set -o histexpand
To povolí rozšíření historie, které je ve výchozím nastavení povoleno pouze pro interaktivní shelly.
Viz man bash
sekce HISTORY EXPANSION
a SHELL BUILTIN COMMANDS
příkaz set
pro podrobnosti.