[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Misbehavior with constants and bash script

From: Alexander Reintzsch
Subject: Misbehavior with constants and bash script
Date: Mon, 19 Nov 2018 21:44:38 +0000


I think I have found some unexpected behavior related to constants in
bash scripts. Here is a bash script as a short proof of concept.

function foo
        echo "A"
        declare -r vconst="I am fixed."
        echo "B"
        declare vconst="new value"
        echo "C"
        unset vconst
        echo "D"
        vconst="new value"
        echo "E" # not executed

function bar
        echo "before foo"
        echo "after foo" # not executed

function buzz
        echo "before bar"
        echo "after bar" # not executed

echo "the last line"

Usually bash scripts continue with the next command if they face an error with 
one command
but this script shows some weird behavior. It exits all the functions
it has called without executing the remaining commands and the continues
to run in the top scope of the script.

This only happens when a constant declared with
declare -r myConst="myConstantValue"
is attempted to be redefined using
myConst="new value"
but not with
declare myConst="new value"

This behavior doesn't seem right.

I have tried this on Ubuntu 16.04 LTS with bash version
GNU bash, Version 4.3.48(1)-release (x86_64-pc-linux-gnu)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]