bash script error with binary operator expected.


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting bash script error with binary operator expected.
# 1  
Old 01-26-2012
bash script error with binary operator expected.

Hello,

I am not sure, where I am missing in the scirpt, I am trying to grep few users from /etc/passwd file and if exists, I added line to echo as user exist, if not create it.
Code:
#!/bin/bash
for vid in v707  z307 z496 z163 z292 ; do
if [ grep "$vid" /etc/passwd ]
then
        echo " $vid User exists "
else
        /usr/sbin/useradd -g admin -G app $vid
        echo changeme |passwd --stdin $vid
fi
done

error message
Code:
# ./adduser.sh
./adduser.sh: line 3: [: v707: binary operator expected
useradd: user v707 exists
Changing password for user v707.
passwd: all authentication tokens updated successfully.

# 2  
Old 01-26-2012
Remove "[" and "]" from the if...

--ahamed
This User Gave Thanks to ahamed101 For This Post:
# 3  
Old 01-27-2012
simple grep of v707 from /etc/passwd may not be exact, eg. user v707 may not exist but v7071 and v7072 may exist. Also, you may grep pattern in other fields too.

To be exact, you should use:
Code:
grep '^$vid:' /etc/passwd

or you can use 'id' to test the existence of the user:
Code:
if id $vid > /dev/null 2>&1
then
        echo " $vid User exists "
else
        /usr/sbin/useradd -g admin -G app $vid
        echo changeme |passwd --stdin $vid
fi


Last edited by chihung; 01-27-2012 at 01:18 AM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Bash variable assignment failure/unary operator expected

I have a little code block (executing on AIX 7.1) that I cannot understand why the NOTFREE=0 does not appear to be assigned even though it goes through that block. This causes a unary operator issue. #!/bin/bash PLATFORM="AIX" NEEDSPC=3000 set -x if ; then lsvg | grep -v rootvg | while... (6 Replies)
Discussion started by: port43
6 Replies

2. Shell Programming and Scripting

Conditional binary operator expected Error

Hi, Below is my code where i m trying to grep for name>$servername in manages*.tmp files servername="serv1" set manages*.tmp if ; then However, i get the below error at the if condition: Can you please suggest how can i fix the problem. (3 Replies)
Discussion started by: mohtashims
3 Replies

3. UNIX for Beginners Questions & Answers

Binary operator expected

Hi Team, I just started to learn shell scripting and i got this script from an online book and tried to run in my terminal. But it throws error message. echo $0 -bash echo $UID 501 cat check_rootuser.sh #!/bin/bash # Run as root, of course. LOG_DIR=/var/log ROOT_UID=0 # Only users... (4 Replies)
Discussion started by: SelvaKumarq
4 Replies

4. Shell Programming and Scripting

Binary operator expected Error

Here is line number 59 of my script 59 if ; thenI get the following error at this line. Can you please explain why ? (1 Reply)
Discussion started by: mohtashims
1 Replies

5. Shell Programming and Scripting

Help - binary operator expected error

Hello Unix forum. I'm encountering the following error "binary operator expected error" and I cannot seem to solve the issue. I have the following source files to process: CPA_LOOKUP_dat.lst PROFILE_TXN__dat.lst TRANSACTION_CODE_dat.lst PROFILE_TXN_OUT_OF_BALANCE_dat.lst ... (2 Replies)
Discussion started by: pchang
2 Replies

6. Shell Programming and Scripting

Binary Operator expected while executing the below shell script.

Hi Experts, Iam bit poor in shell scripting, Here my requirement is for generating an alert where the oracle database db_recovery_file_dest_size usage. If it reaches beyond 80% should recieve an alert through an email. Want to schedule this alert in cron. #!/bin/bash .... (9 Replies)
Discussion started by: Jagadish m
9 Replies

7. Linux

Binary operator expected

hi i'm trying to do program that counts the total no of words from files from a directory and all it's subdirectories.ang i get the binary operator expected error at line 7 and line 12.can you please help me with this as quick as possible? if test -d $1 then sum=0 for name in $1/* do... (2 Replies)
Discussion started by: marian
2 Replies

8. UNIX for Dummies Questions & Answers

unary operator expected error

Hi I am doing a script like if then echo "table name dosent exist" exit fi the problem is if $table_name is null then i am getting the error Please help me Thanks in advance (2 Replies)
Discussion started by: ssuresh1999
2 Replies

9. Shell Programming and Scripting

Binary operator expected

Within my script, there is this following if, then statement. It basically looks for files in a directory that match a certain naming convention (bingofile*.DAT) and are non empty files and moves these files to a diff. directory. The script works okay if there is only one file matching the search... (4 Replies)
Discussion started by: basisvasis
4 Replies

10. Shell Programming and Scripting

binary operator expected error

It is erroring for : binary operator expected on the if line. Any suggestions? Thanks in advence. (7 Replies)
Discussion started by: apps_user
7 Replies
Login or Register to Ask a Question