History expansion in scripts [duplicate]
This question already has an answer here:
History substitution fails when implemented in shell script
1 answer
I have the following Bash script
case $- in (*H*) echo enabled ;; (*) echo disabled ;; esac
set -H
case $- in (*H*) echo enabled ;; (*) echo disabled ;; esac
pwd
last_command="!!"
echo $last_command
which prints
disabled
enabled
/home/user
!!
The first line of code checks to see if history expansion is enabled. The second enables history expansion. The third is the same as the first. Then its runs pwd
and finally assigns what should be last command to last_command
and prints this variable.
The history is not expanding. What is going on?
bash shell-script shell command-history history-expansion
New contributor
marked as duplicate by Jeff Schaller
StackExchange.ready(function() {
if (StackExchange.options.isMobile) return;
$('.dupe-hammer-message-hover:not(.hover-bound)').each(function() {
var $hover = $(this).addClass('hover-bound'),
$msg = $hover.siblings('.dupe-hammer-message');
$hover.hover(
function() {
$hover.showInfoMessage('', {
messageElement: $msg.clone().show(),
transient: false,
position: { my: 'bottom left', at: 'top center', offsetTop: -7 },
dismissable: false,
relativeToBody: true
});
},
function() {
StackExchange.helpers.removeMessages();
}
);
});
});
1 hour ago
This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.
add a comment |
This question already has an answer here:
History substitution fails when implemented in shell script
1 answer
I have the following Bash script
case $- in (*H*) echo enabled ;; (*) echo disabled ;; esac
set -H
case $- in (*H*) echo enabled ;; (*) echo disabled ;; esac
pwd
last_command="!!"
echo $last_command
which prints
disabled
enabled
/home/user
!!
The first line of code checks to see if history expansion is enabled. The second enables history expansion. The third is the same as the first. Then its runs pwd
and finally assigns what should be last command to last_command
and prints this variable.
The history is not expanding. What is going on?
bash shell-script shell command-history history-expansion
New contributor
marked as duplicate by Jeff Schaller
StackExchange.ready(function() {
if (StackExchange.options.isMobile) return;
$('.dupe-hammer-message-hover:not(.hover-bound)').each(function() {
var $hover = $(this).addClass('hover-bound'),
$msg = $hover.siblings('.dupe-hammer-message');
$hover.hover(
function() {
$hover.showInfoMessage('', {
messageElement: $msg.clone().show(),
transient: false,
position: { my: 'bottom left', at: 'top center', offsetTop: -7 },
dismissable: false,
relativeToBody: true
});
},
function() {
StackExchange.helpers.removeMessages();
}
);
});
});
1 hour ago
This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.
add a comment |
This question already has an answer here:
History substitution fails when implemented in shell script
1 answer
I have the following Bash script
case $- in (*H*) echo enabled ;; (*) echo disabled ;; esac
set -H
case $- in (*H*) echo enabled ;; (*) echo disabled ;; esac
pwd
last_command="!!"
echo $last_command
which prints
disabled
enabled
/home/user
!!
The first line of code checks to see if history expansion is enabled. The second enables history expansion. The third is the same as the first. Then its runs pwd
and finally assigns what should be last command to last_command
and prints this variable.
The history is not expanding. What is going on?
bash shell-script shell command-history history-expansion
New contributor
This question already has an answer here:
History substitution fails when implemented in shell script
1 answer
I have the following Bash script
case $- in (*H*) echo enabled ;; (*) echo disabled ;; esac
set -H
case $- in (*H*) echo enabled ;; (*) echo disabled ;; esac
pwd
last_command="!!"
echo $last_command
which prints
disabled
enabled
/home/user
!!
The first line of code checks to see if history expansion is enabled. The second enables history expansion. The third is the same as the first. Then its runs pwd
and finally assigns what should be last command to last_command
and prints this variable.
The history is not expanding. What is going on?
This question already has an answer here:
History substitution fails when implemented in shell script
1 answer
bash shell-script shell command-history history-expansion
bash shell-script shell command-history history-expansion
New contributor
New contributor
New contributor
asked 1 hour ago
History_expansionHistory_expansion
82
82
New contributor
New contributor
marked as duplicate by Jeff Schaller
StackExchange.ready(function() {
if (StackExchange.options.isMobile) return;
$('.dupe-hammer-message-hover:not(.hover-bound)').each(function() {
var $hover = $(this).addClass('hover-bound'),
$msg = $hover.siblings('.dupe-hammer-message');
$hover.hover(
function() {
$hover.showInfoMessage('', {
messageElement: $msg.clone().show(),
transient: false,
position: { my: 'bottom left', at: 'top center', offsetTop: -7 },
dismissable: false,
relativeToBody: true
});
},
function() {
StackExchange.helpers.removeMessages();
}
);
});
});
1 hour ago
This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.
marked as duplicate by Jeff Schaller
StackExchange.ready(function() {
if (StackExchange.options.isMobile) return;
$('.dupe-hammer-message-hover:not(.hover-bound)').each(function() {
var $hover = $(this).addClass('hover-bound'),
$msg = $hover.siblings('.dupe-hammer-message');
$hover.hover(
function() {
$hover.showInfoMessage('', {
messageElement: $msg.clone().show(),
transient: false,
position: { my: 'bottom left', at: 'top center', offsetTop: -7 },
dismissable: false,
relativeToBody: true
});
},
function() {
StackExchange.helpers.removeMessages();
}
);
});
});
1 hour ago
This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
For a non-interactive shell, you must specifically also enable command history:
set -o history
set -o histexpand
Then your example will work:
disabled
enabled
/home/schaller/tmp/502442
last_command="pwd"
pwd
Thanks, how do I make is so that I can access the history from the shell that is running the script and use history expansion is a similar fashion?
– History_expansion
1 hour ago
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
For a non-interactive shell, you must specifically also enable command history:
set -o history
set -o histexpand
Then your example will work:
disabled
enabled
/home/schaller/tmp/502442
last_command="pwd"
pwd
Thanks, how do I make is so that I can access the history from the shell that is running the script and use history expansion is a similar fashion?
– History_expansion
1 hour ago
add a comment |
For a non-interactive shell, you must specifically also enable command history:
set -o history
set -o histexpand
Then your example will work:
disabled
enabled
/home/schaller/tmp/502442
last_command="pwd"
pwd
Thanks, how do I make is so that I can access the history from the shell that is running the script and use history expansion is a similar fashion?
– History_expansion
1 hour ago
add a comment |
For a non-interactive shell, you must specifically also enable command history:
set -o history
set -o histexpand
Then your example will work:
disabled
enabled
/home/schaller/tmp/502442
last_command="pwd"
pwd
For a non-interactive shell, you must specifically also enable command history:
set -o history
set -o histexpand
Then your example will work:
disabled
enabled
/home/schaller/tmp/502442
last_command="pwd"
pwd
answered 1 hour ago
Jeff SchallerJeff Schaller
42k1156133
42k1156133
Thanks, how do I make is so that I can access the history from the shell that is running the script and use history expansion is a similar fashion?
– History_expansion
1 hour ago
add a comment |
Thanks, how do I make is so that I can access the history from the shell that is running the script and use history expansion is a similar fashion?
– History_expansion
1 hour ago
Thanks, how do I make is so that I can access the history from the shell that is running the script and use history expansion is a similar fashion?
– History_expansion
1 hour ago
Thanks, how do I make is so that I can access the history from the shell that is running the script and use history expansion is a similar fashion?
– History_expansion
1 hour ago
add a comment |