1

I created a shell script file named 1.sh with only one echo command:

echo $HISTSIZE 

I made the file 1.sh executable and tried to run the file in the terminal by running the command

./1.sh 

It printed an empty line on the terminal. But when I run this command at the shell prompt I get 1000 as output.

Why is the echo not working in my shell script?

    1 Answer 1

    4

    You script is running in a non-interactive shell, which has history disabled by default (assuming it supports history, but that’s the case in most sh implementations nowadays); thus HISTSIZE is empty.

    If you forcibly enable history (in Bash at least), you’ll get the default value:

    set -o history echo $HISTSIZE 
    2
    • But i have a query. When i just echo $HISTSIZE in commandline ,i get a value 1000. But when i does it by enabling history in shell script, i get a value 500. Why there is a difference in two values?CommentedDec 17, 2017 at 10:05
    • You get different values because, when the shell runs a script, it doesn’t process your startup scripts (.profile, .bashrc etc.). Thus HISTSIZE is set to the default value, 500, rather than the value your startup scripts set, 1000.CommentedDec 17, 2017 at 10:32

    You must log in to answer this question.

    Start asking to get answers

    Find the answer to your question by asking.

    Ask question

    Explore related questions

    See similar questions with these tags.