While I agree with Corona688 that there are no booleans in shell, they can be emulated to some extent using the true and false built-ins if you put them in variables. This is something I found out myself at some point, and although I don't see this practice very often, I sometimes like to use it in my scripts, because I think it makes the code more mnemonic.
What really happens here is that the shell built-ins inside these variables get executed and then produce a 1 or 0 return code.
You do need to be careful and disciplined that you only set these variables in your script itself and only to true or false for boolean purposes. Do not use variables that can contain user input or for example input from a file, because the content of these variables will get executed and there can be a security risk involved if you are careless with that.
Also, since true and false are built-ins, they can be overridden by shell functions, so you need to be aware of that also, like with any other utility of built-in that you use your script..
If you are not comfortable with this then use 0 and 1 values and test for that in [ ... ] statements.
Last edited by Scrutinizer; 03-29-2012 at 10:05 AM..
While I agree with Corona688 that there are no booleans in shell, they can be emulated to some extent using the true and false built-ins if you put them in variables. This is something I found out myself at some point, and although I don't see this practice very often, I like to use it in my scripts, because I think it makes the code more mnemonic.
What really happens here is that the shell built-ins inside these variables get executed and then produce a 1 or 0 return code.
You do need to be careful and disciplined that you only set these variables in your script itself and only to true or false for boolean purposes. Do not use variables that can contain user input or for example input from a file, because the content of these variables will get executed and there can be a security risk involved if you are careless with that.
If you are not comfortable with this then use 0 and 1 values and test for that in [ ... ] statements.
I fully understand what you mean. It was my purpose and was tending to your way of doing things. I originally was using the 0 and 1 thing, but when I was doing the checking I was using
The above is not a very good system if one wants to check if you have an argument or not,
as I always need to see if I had put a 0 or 1.
So you are saying that I can just use
The above is much better.
So you can put the name of a command in a variable, and call it with $VARIABLE.
It just so happens there are commands named true and false!
And they do what they say they do. true always returns success, false always returns failure, which means when you join them together with && and ||, they do what they look like they should do.
trying to sum elements in an array using bc and getopt,i have a file with names and thier vaules if the names appears 3 times i should multiply its value with 3 then find the sum of all the elements together
cat foo.txt
max 2.3
henry 3
fransis 4.5
max 2.3
henry 3
max 2.3
it should... (1 Reply)
Hey all,
This is my first post, and I am relatively new to linux/unix scripts. I am writing a bash script in which I am trying to extract one line from another file and parse specific words from the line into an array. So for example, I have a file called SortScans in which the first 5 lines... (9 Replies)
Is there any command or VARIABLE in unix to display only bash builtin commands?. Some days back I worked on that, but now I do not remember.
Can anyone please reply for this?... (4 Replies)
Hi all,
I have a file that contains many lines, but only a few are of my interest, so I'm cutting it with grep + awk, and the result I get is for example
line 0
line 1
line 2
line 3
line n
Now I want to store each line in an array "cell" so I can use it later calling to
${array},... (2 Replies)
hi i am using bash shell to perform some subraction. here is what i have:
i have a while loop and am using i as a counter.
diff= `expr ${ARRAY1} - ${ARRAY2}`
for example array1 has -0.7145 and array2 has -0.7041.
when i try the above command, i get expr: non-numeric argument. any... (6 Replies)
hi guys,
i have the following script and when i run it i get blank lines on the screen.. i am trying to display the contents of array var..
#!/usr/bin/bash
var=`awk 'NR>20&&NR<31' try.sum | awk '{print $4}'`
echo "${var}" (1 Reply)
Hi,
I am writing a bash shell script. I would like to execute a statement only if an array contains a specific value. For example:
array=(1 3 5 7)
I would like to execute the statement only if the value 3 is present in ${array}.
Thanks for any help,
Mike (1 Reply)
:confused:
Is it possible to delete array elements dynamically.For instance,consider an array( a b c d ) ,now can i delete array (the third element 'c').So that the array becomes array(a b d)..
Thanks in advance!! (1 Reply)
Hi there,
im having issue with comparing two variables, in a bash script.
im trying to do the following:
- get a word from user 1
- split the word into array
- get a character from user2
trying to compare the character entered by user 2 with every single character in the array... (2 Replies)
I am running an Ubuntu Gutsy laptop with Advanced Compiz fusion options enabled. I am using xdotool to simulate keyboard input in order to rotate through multiple desktops.
I am looking for a way to kill a while true loop when the Enter key (or Control+C if it is easier) is pushed when the... (2 Replies)