Operator question


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Operator question
# 1  
Old 03-01-2005
Operator question

I need to find out if a variable contains a certain text string, then do something about it.

Here is what I mean, but I don't know how to get a "contains" operator

Code:
# We have volumes called:
#  /Volumes/BackupsA_K
#  /Volumes/BackupsL_Z
#  /Volumes/Backups_Admin
# (could be more, etc)

# Any of these volumes could be mounted, and we want to unmount it if it exists.

# We'll see if any volumes containing "Backups" is in /Volumes/
theVolume=`(ls /Volumes | grep "Backups")`

# Just to see that we're getting a full volume name
echo $theVolume
## Let's say $theVolume is Backups_Admin

if [ $theVolume CONTAINS "Backups" ]; then
         unmount /Volumes/$theVolume
         else
         echo "No Backup Volumes Mounted"
fi

# so we need to see if $theVolume contains the word "Backups".

Thanks!!
# 2  
Old 03-01-2005
Code:
if [[ `expr ${theVolume} : 'Backups'` -ne 0 ]]; then
   echo 'found'
else
   echo 'not found'
fi;

# 3  
Old 03-01-2005
That doesn't seem to work. It's doing the "else", even though Backups_Admin is in /Volumes/
# 4  
Old 03-01-2005
Quote:
Originally Posted by TheCrunge
That doesn't seem to work. It's doing the "else", even though Backups_Admin is in /Volumes/
sorry 'bout that:

Code:
#!/bin/sh

theVolume='/foo/Backups'
#theVolume='/foo/Backup'

if [ `expr "${theVolume}" : '.*Backups.*'` -ne 0 ]; then
  echo 'found'
else
  echo 'not found'
fi;

or without using the external 'expr' - under ksh:
Code:
#!/bin/ksh

theVolume='/foo/Backups'
#theVolume='/foo/Backup'

if [[ "${theVolume}" = @(*Backups*) ]]; then
  echo 'found'
else
  echo 'not found'
fi;


Last edited by vgersh99; 03-01-2005 at 03:28 PM..
# 5  
Old 03-01-2005
Yeah, I don't think this is going to work. I'm os OS X and I don't have the korn shell on the client computers.

I'll figure out a way. I think all I need is the unmount command, because if the directory isn't there, then it won't really matter that unmount returns an error (logout script).

Oh well, thanks anyway!!
# 6  
Old 03-01-2005
Quote:
Originally Posted by TheCrunge
Yeah, I don't think this is going to work. I'm os OS X and I don't have the korn shell on the client computers.
the first solution is NOT really a ksh solution - it will work under Bourne. I've just changed the '#!/bin/ksh' to '#!/bin/sh' - it's been a habit of mine to write everything under ksh....

Quote:
Originally Posted by TheCrunge
I'll figure out a way. I think all I need is the unmount command, because if the directory isn't there, then it won't really matter that unmount returns an error (logout script).

Oh well, thanks anyway!!
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Newbie question: modulo operator with negative operand, bug or feature?

Hi, I'm new to the Ash shell so my apologies if this is well known. In normal maths and other shells and languages I've used, the modulo operator always returns a positive remainder. For example see this discussion (first post so I can't hyperlink it): ... (11 Replies)
Discussion started by: FleetFoot
11 Replies

2. Homework & Coursework Questions

Description of OR AND Operator

From the below i would need the difference using between && and || error_func() { # Standard error function ] && print -u2 "ERROR: $*" exit 1 } ] && error_func "Source Directory is missing as input argument" ] || error_func "Source Directory does not... (1 Reply)
Discussion started by: arun888
1 Replies

3. Shell Programming and Scripting

solaris 10 and == operator

Hi , I have .sh script and it's running on solaris 10 ( ksh is shell) and part of the script is : orahome=`awk -F: '$1 == "'$oraserver'" {print $2}' /var/opt/oracle/oratab` if ; then ORACLE_HOME=/opt/oracle/oracle_home;export ORACLE_HOME else ORACLE_HOME=$orahome;export... (9 Replies)
Discussion started by: talashil
9 Replies

4. UNIX for Dummies Questions & Answers

+= operator

im new to bash scripting and im just using online tutorials and trial and error. i wanted to write a script to read numbers from a file and find their sum: #!/bin/bash theSum=0 for line in $(cat numbers.txt) do let "theSum = theSum + $line" echo "$line" done echo "The sum is... (3 Replies)
Discussion started by: astrolux444
3 Replies

5. Shell Programming and Scripting

OR operator syntax question in AWK script

Hi guys, I confused about syntax used in OR script as follow: I have this sample file separated by "|" containing: January|Month No. 1 February|Month No. 2 March|Month No. 3 April|Month No. 4 May|Month No. 5 June|Month No. 6 July|Month No. 7 August|Month No. 8 September|Month No. 9... (11 Replies)
Discussion started by: cgkmal
11 Replies

6. UNIX for Dummies Questions & Answers

su with << operator

All, THe below is my script , when i use this i am getting nothing . could any one help me to know what is the use of the << operator below su - $8 << supo echo "exportsph $2 $1 $3 $4" exportsph $2 $1 $3 $4 supo i also tried as individual command su - userid << supo , when i do... (3 Replies)
Discussion started by: arunkumar_mca
3 Replies

7. Programming

new operator

Hi, Please clear the 2 questions, 2 Questions, 1) Why the new as a operator? Is there any special reason why it can't be a function like malloc? 2) How are we considering sizeof(),new are as a opearartors? I know + - * / -> , . etc.. are operators, which criteria satisfied by sizeof()... (4 Replies)
Discussion started by: Nagapandi
4 Replies

8. HP-UX

Or operator with if

hi, i was trying to club to test condition with if. if -o ; then it is giving me error message, i wanted to ask how can we check two condtions with one if. (1 Reply)
Discussion started by: babom
1 Replies

9. Shell Programming and Scripting

And operator

I am trying to check two variables and if both are blank I want to set a flag: the_f3_pid=`rsh $target ps -ef | grep "f3.eab" | awk '{print $2}'` the_f7_pid=`rsh $target ps -ef | grep "f7.eab" | awk '{print $2}'` if ; then y=1 fi I get an error: ./script_name: test: 0403-021 ]... (4 Replies)
Discussion started by: rcarnesiii
4 Replies

10. Programming

Problem about c++ new operator

#include <iostream.h> class test { private: int i; public: inline test(int m) { i = m; } inline int get_i() { return i; } }; int main() { test * a = new test(2); (3 Replies)
Discussion started by: xbjxbj
3 Replies
Login or Register to Ask a Question