Check a variable value through if clause


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Check a variable value through if clause
# 8  
Old 02-24-2012
All Posix compliant shells, yes...
# 9  
Old 02-24-2012
test isn't even a shell builtin. They couldn't possibly depreciate -a. They can roll their eyes and sigh at people who use it, but it's not going away.

Not everyone has the luxury of a POSIX compliant shell, either. Don't make me lecture you for not using PAX instead of tar -- that's the better, POSIX way to do archiving now Smilie
# 10  
Old 02-24-2012
Posix "standards" changes year-on-year over the decades and have the occasional touch of madness in threatening to depreciate feature which are in widespread use in manufacture-supplied system scripts as well as custom scripts.
I prefer the "-a" and "-o" syntax myself compared with the ancient "&&" and "||" syntax. Those with a bias towards "C" and "awk" seem to prefer the older syntax. I do use "&&" and "||" in crontab but without a leading "if".
It's about 50-50 in the system scripts which come with my system.

From the moment Posix didn't include compatibility settings with other Bourne-like Shells we found machines shipped with multiple alternate Shells and manufacturers offering downloads of alternate Shells.

I love the this line from the Wikipedia on Posix:
Quote:
The following operating systems conform (i.e., are 100% compliant) to one or more of the various POSIX standards.

Last edited by methyl; 02-24-2012 at 12:39 PM..
# 11  
Old 02-26-2012
Quote:
Originally Posted by Corona688
test isn't even a shell builtin. They couldn't possibly depreciate -a. They can roll their eyes and sigh at people who use it, but it's not going away.

Not everyone has the luxury of a POSIX compliant shell, either. Don't make me lecture you for not using PAX instead of tar -- that's the better, POSIX way to do archiving now Smilie
No, obviously, it will not go away entirely, but that is not what deprecation means. Of course anyone can keep using whatever they like. But is it is good practice on this forum to show solutions that work across platforms and the best guarantee for that is POSIX. I hardly think think pointing that out can be seen as "lecturing".

Apparently there are reasons for obsolescing -a and -o . They are explained here: test: application usage

Also, test is a shell builtin as well as an external program in practically any shell nowadays. POSIX requires that regular built-in commands also exist as separate binaries.

Code:
$ bash
$ type test
test is a shell builtin
$ dash
$ type test
test is a shell builtin
$ zsh
% type test
test is a shell builtin
% ksh
$ type test
test is a shell builtin

That is why the use of ampersands to connect tests statements isn't detrimental to speed anymore..

What systems are you using that do not have a "luxury" POSIX compliant shell? Solaris?

---------- Post updated at 08:04 ---------- Previous update was at 07:46 ----------

Quote:
Originally Posted by methyl
Posix "standards" changes year-on-year over the decades and have the occasional touch of madness in threatening to depreciate feature which are in widespread use in manufacture-supplied system scripts as well as custom scripts.
I prefer the "-a" and "-o" syntax myself compared with the ancient "&&" and "||" syntax. Those with a bias towards "C" and "awk" seem to prefer the older syntax. I do use "&&" and "||" in crontab but without a leading "if".
It's about 50-50 in the system scripts which come with my system.

From the moment Posix didn't include compatibility settings with other Bourne-like Shells we found machines shipped with multiple alternate Shells and manufacturers offering downloads of alternate Shells.

I love the this line from the Wikipedia on Posix:
The reason I prefer this syntax is not because of C or awk, but because it conforms to POSIX recommendations plus apparently there are reasons for avoiding -o and -a.

Last edited by Scrutinizer; 02-28-2012 at 05:41 AM..
This User Gave Thanks to Scrutinizer For This Post:
# 12  
Old 02-26-2012
Really useful content..Thanks
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Check variable

Hi people, I would like to start a review of my config variable to check whether they have been changed and if not then there is only an echo. If they have been changed to my other commands are executed. I hope you can help me. with best regards JPad edit: here my code if ;... (8 Replies)
Discussion started by: JPad
8 Replies

2. Shell Programming and Scripting

Check if a variable is having value

I have a script /root/asas with following contents. #!/bin/bash ha=`cat /etc/passwd | grep sandra` if ; then echo "Sandra is in /etc/passwd" echo "variable ha is $ha" else echo "Sandra is NOT in /etc/passwd" echo "variable ha is $ha" fi What... (3 Replies)
Discussion started by: anil510
3 Replies

3. Shell Programming and Scripting

Use a shell variable in where clause

Hi all, I want to use a variable inside my sql query and below is my script: #!/bin/ksh export b="abcd" a=`sqlplus -s abc/def@ghi <<++ set heading off; set feedback off; select xxx from mytable where clmn_nm='$b'; exit; ++` echo $a But the output i get is below: $>... (4 Replies)
Discussion started by: Jayaraman
4 Replies

4. Shell Programming and Scripting

Check the value of a variable

#!/bin/sh echo "Running Script to capture ORACLE Erros" # Change Directory to the actual logs path cd /home/nv8510/lognew err_var=`grep -in "ORA-" *` if then echo "THESE ARE THE ORACLE ERROR OCCURED" echo "$err_var" echo... (7 Replies)
Discussion started by: neeraj617
7 Replies

5. Shell Programming and Scripting

Check if a variable is zero

I have seen many posts for this sort of problem but I just did not know how to use it for my issue. A number is assigned to a variable and I wanted to check if it is a zero or non zero. Example of my numbers are below: 000000000000000000000000000000000000000000000000... (8 Replies)
Discussion started by: soujiv
8 Replies

6. Shell Programming and Scripting

clause for setting a variable to $1 if it exists

Hi all, What is the simplest way to setting a variable to $1 if it exists ? If I go with name=${"$1":-abc}, bash complains "bad substitution", So I use name="$1" name=${name:-abc} But is there a way to fix this "bad substitution" ? Thanks! (2 Replies)
Discussion started by: qiulang
2 Replies

7. Shell Programming and Scripting

Bash-Shell: If-Clause to check if file is empty

Hello, I want to checkl whether my file has text in it or not. if ; then ... if ; then ... But none of these work Can someone help me? ---------- Post updated at 09:00 AM ---------- Previous update was at 08:55 AM ---------- The code-tags caused an displayerror,... (5 Replies)
Discussion started by: ABE2202
5 Replies

8. Shell Programming and Scripting

How to check if a variable contains a .

Hi I am writing a bash script and would like to check is a variable contains a . or not ex. a=102 output ok a=1.02 output not ok Many thanks, (3 Replies)
Discussion started by: gekkos
3 Replies

9. Shell Programming and Scripting

to check variable if its non numeric

if test $b -ne then echo "\n\n\n\tPassword reset has been done successfully" else echo "\n\n\n\tAn error occurred" fi i want to check whether $b is non-numeric so how to do that? (3 Replies)
Discussion started by: sachin.gangadha
3 Replies

10. UNIX for Dummies Questions & Answers

if clause

hi, pls could you help me with one program in KSH ( i have sunOS). I need to create an If clause, that prints an error message and filenames, when in a directory are found some files of null size (find . -type f -size 0 ). thanks (3 Replies)
Discussion started by: palmer18
3 Replies
Login or Register to Ask a Question