Sponsored Content
Top Forums Shell Programming and Scripting Using arrays in bash using strings to bash built-in true Post 302615107 by Scrutinizer on Thursday 29th of March 2012 07:16:43 AM
Old 03-29-2012
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.
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.

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..
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Bash: Exiting while true loop when terminal is not the focus window

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)
Discussion started by: acclaypool
2 Replies

2. Shell Programming and Scripting

comparing two arrays or strings in bash

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)
Discussion started by: new2Linux
2 Replies

3. Shell Programming and Scripting

Arrays in bash.need help

: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)
Discussion started by: tj23
1 Replies

4. Shell Programming and Scripting

Searching Bash Arrays

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)
Discussion started by: msb65
1 Replies

5. Shell Programming and Scripting

arrays in bash

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)
Discussion started by: npatwardhan
1 Replies

6. Shell Programming and Scripting

subtraction in bash arrays

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)
Discussion started by: npatwardhan
6 Replies

7. Shell Programming and Scripting

Yet another bash arrays question

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)
Discussion started by: TuxSax
2 Replies

8. Shell Programming and Scripting

bash built-in

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)
Discussion started by: gwgreen1
4 Replies

9. Shell Programming and Scripting

How to make arrays from strings in bash?

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)
Discussion started by: camocazi
9 Replies

10. Shell Programming and Scripting

bc,getopt and arrays in bash

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
asadmin-multimode(1AS)													    asadmin-multimode(1AS)

NAME
asadmin-multimode, multimode - allows you to execute multiple commands while preserving environment settings and remaining in the asadmin utility SYNOPSIS
multimode [--file filename] [--printprompt=true] [--encoding encode] [--terse=false] [--echo=false] Use multimode to process the asadmin commands. The command-line interface will prompt you for a command, execute that command, display the results of the command, and then prompt you for the next command. Additionally, all the asadmin option names set in this mode are used for all the subsequent commands. You can set your environment and run commands until you exit multimode by typing "exit" or "quit." You can also provide commands by passing a previously prepared list of commands from a file or standard input (pipe). You can invoke multimode from within a multimode session; once you exit the second multimode environment, you return to your original multimode environment. This command is supported in local mode only. --file reads the commands as defined in the file. --printprompt allows the printing of asadmin prompt after each command is executed. Set this option to false when the commands are piped or redirected from the standard input or file. By default the option is set to true. --encoding specifies the locale for the file to be decoded. --terse indicates that any output data must be very concise, typically avoiding human-friendly sentences and favoring well- formatted data for consumption by a script. Default is false. --echo setting to true will echo the command line statement on to the standard output. Default is false. Example 1: Using multimode to execute multiple commands example% asadmin multimode --file commands_file.txt Where: example% is the system prompt. The multimode settings are executed from the commands_file.txt file. EXIT STATUS
0 command executed successfully 1 error in executing the command asadmin-export(1AS), asadmin-unset(1AS) J2EE 1.4 SDK March 2004 asadmin-multimode(1AS)
All times are GMT -4. The time now is 11:29 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy