This is the basic setting for hsetroot for it to work: hsetroot -center /path/to/image/ - setting the wallpaper with just that the picture. To use these options, just one has to be place within the same line of argument, using just one of these three. -flipd , -fliph , -flipv giving a total of 4 options that can be used when setting hsetroot, therefore one of the options would be void or not there. Therefore in order to able to use all four options the $variable that is needed to be placed within the calling of the program has to disappear so that the system does not see it, with the $var still placed within the argument when it is called by the script. A case statement is perfect for this to work. Just have RANDOM give you one of 4 numbers then the case statement picks one, or the number matches which ever case it be, then sets it into the line of argument for hestroot. The format for that would then be, hsetroot -flipd -center /path/to/image -- to replace having to manually change that option we just use a $var then reassign that same $var within a function so that we can eliminate having to open up a terminal or script and write in again but differently. Now we can just use that variable to take the place of all four options that is given to the user to set hsetroot like this instead:  hsetroot $var -center /path/to/imagewhere $var now becomes one of either, 1) -fliph , 2) -flipd , 3) -flipv and the 4) forth one or last option is nothing at all. HUSTON WE NOW HAVE A PROBLEM!As we want to eliminate having to open up that script and manually change it we have to make the system believe that the $var that is written in that line of code is no longer there. It has to disappear or turn invisible so that it does not effect the program that is looking for all of the arguments it needs to have in order for it to run without errors. How do we do that? in other words:I have a case statement with 4 options one having to be empty to indicate that it is not even there. It goes as such: it is case '0' that I am having problems with as the $variable has to stay within the line of arguments but if RANDOM gives the variable a value of zero (0) then it needs to 'disappear' like it is not even there and still allow the program to use all the other arguments to still do what it does.  I have all ready tried all of these:setS= and setS='' and setS=NULL and unset -v setSnone of them workflipS(){ RANGE=3 val=$RANDOM let  val %= $RANGE case $val in     1 )        setS=-flipd          echo $setS 1        ;;    2 )        setS=-fliph          echo $setS 2            ;;    3 )        setS=-flipv          echo $setS  -- 3            ;;    0 )         setS=' '           echo $setS   -- 4            ;;esac} flipS this is for hsetroot to randomize the screen setting Syntaxis: hsetroot [command1 [arg1..]] [command2 [arg1..]]...  with -flipv etc. they take no arg after it. just the placing of that in itself.NOTE: I am using just about every argument that hsetroot has in a RANDOM fashion therefore the using the case statement like this is not an option: RANGE=3 val=$RANDOM let  val %= $RANGE   cast $val in  1 )   hsetroot -flipd -center /path/to/image   ;;  2 )   hsetroot -flipv -center /path/to/image    ;;  .......
how do I make a $VAR empty so it don't effect the command line argument and still be within that argument?
command line;bash script;variable substitution