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.
Code:
parameter_A_used=true parameter_B_used=false
if $parameter_A_used && $parameter_B_used; then
echo "True"
else
echo "False"
fi
Code:
if $parameter_A_used && ! $parameter_B_used; then
echo "True"
else
echo "False"
fi
Code:
$ a=true b=false
$ if $parameter_A_used && $parameter_B_used; then echo "True"; else echo "False"; fi
False
$ if $parameter_A_used && ! $parameter_B_used; then echo "True"; else echo "False"; fi
True
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
Code:
hasArgument=1
if [ $hasArgument == 1 ]; then
...
fi
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.
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)
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)
: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,
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)
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 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 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)
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)
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)
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)
Discussion started by: elginmulizwa
1 Replies
LEARN ABOUT LINUX
rbash
RBASH(1) General Commands Manual RBASH(1)NAME
rbash - restricted bash, see bash(1)RESTRICTED SHELL
If bash is started with the name rbash, or the -r option is supplied at invocation, the shell becomes restricted. A restricted shell is
used to set up an environment more controlled than the standard shell. It behaves identically to bash with the exception that the follow-
ing are disallowed or not performed:
o changing directories with cd
o setting or unsetting the values of SHELL, PATH, ENV, or BASH_ENV
o specifying command names containing /
o specifying a file name containing a / as an argument to the . builtin command
o specifying a filename containing a slash as an argument to the -p option to the hash builtin command
o importing function definitions from the shell environment at startup
o parsing the value of SHELLOPTS from the shell environment at startup
o redirecting output using the >, >|, <>, >&, &>, and >> redirection operators
o using the exec builtin command to replace the shell with another command
o adding or deleting builtin commands with the -f and -d options to the enable builtin command
o using the enable builtin command to enable disabled shell builtins
o specifying the -p option to the command builtin command
o turning off restricted mode with set +r or set +o restricted.
These restrictions are enforced after any startup files are read.
When a command that is found to be a shell script is executed, rbash turns off any restrictions in the shell spawned to execute the script.
SEE ALSO bash(1)GNU Bash-4.0 2004 Apr 20 RBASH(1)