Необходимо использовать переключатель 'g' для глобального поиска
var result = mystring.match(/(&|&)?([^=]+)=([^&]+)/g)
Попробуйте это:
trap 'echo -ne "\033]2;$(history 1 | sed "s/^[ ]*[0-9]*[ ]*//g")\007"' DEBUG
Благодаря history 1
он работает даже со сложными выражениями, такими как:
true && (false); echo $? | cat
Для которых подходы, основанные на $ BASH_COMMAND или $ @, терпят неудачу. Например, Симон отображает:
true | echo $? | cat
Благодаря Жилю и Симону за вдохновение.