Sponsored Content
Top Forums UNIX for Dummies Questions & Answers Problem with test syntax in script Post 302696245 by Corona688 on Tuesday 4th of September 2012 01:04:41 PM
Old 09-04-2012
You don't need to run ID 5 times to get 5 different pieces of data from it. Run it once, get all the data from it the first time.

You are using single quotes, which take their contents literally, where you need backticks, which run their contents. But you don't even need that statement.

You don't need to do \( all the time, just use quotes. Variables will expand inside double-quotes, even, so you don't need to end the quotes to use a variable.

Whenever you're doing if [ `... | wc -l` -gt somevalue ] to check something, you've probably missed a simpler way. Here, since I've overwritten the $1 ... arguments, I use the special "$#" variable, the number of arguments instead.

Code:
        USUARIO=$1
        DATA=`id $USARIO 2>/dev/null` # Save the data, ignore the error strings
	if [ $? -ne 0 ]
	then
		echo "El usuario $USUARIO no existe"
		exit
	fi

        # Note that $DATA is not in quotes and MUST NOT be in quotes.
        set -- $DATA # $1=NOMBRE, $2=GRUPOID, $3=GRUPOID2, etc.

	echo "(UID) y nombre: $1"
	echo "(GID) y numero de goup1: $2"
        [ "$#" -gt 2 ] && echo "(GID2) y numero de group2: $3"


Last edited by Corona688; 09-04-2012 at 02:13 PM..
This User Gave Thanks to Corona688 For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

problem with script and syntax error message

Hi I have the following script and have problem debugging the problems. The function of this script is to make sure the entire file is being received (the filesize of a data is not changing after 20 seconds) and start moving the file to another directory. This script should be started every 30mins.... (5 Replies)
Discussion started by: ReV
5 Replies

2. Shell Programming and Scripting

syntax problem

dear friends, I have a large size file containg two fields data like this *** **** 122 222 ***** ***** ***** ***** 232 233 i have file like this. i want to remove blank lines from file . i think awk is servive this problem i wrote a awk command but the error is... (3 Replies)
Discussion started by: rajan_ka1
3 Replies

3. Shell Programming and Scripting

syntax error in shell test: unknown operator

Hi All, can some one figure out the syntax issue here. How to overcome this? #!/bin/sh $ HFR_MAIL=NO $ PRP_MAIL=NO $ MC_MAIL=NO $ if && && ]; then > echo "NO " > else > echo "YES" > fi test: unknown operator NO $ if && && ]; then > echo "NO" > else > echo "YES" >... (4 Replies)
Discussion started by: shellscripter
4 Replies

4. Shell Programming and Scripting

syntax error for if statment test expression

Hi what's the correct way of writing if 1)if "$time_diff" -gt 5 then echo "killing hung process \n" fi 2)if test $time_diff -gt 5 then echo "killing hung process \n" fi where -time_diff=$(($Sam - $current_min)) and current_min=`date +%M` infact both are giving Syntax... (1 Reply)
Discussion started by: Anteus
1 Replies

5. Shell Programming and Scripting

Test on string containing spacewhile test 1 -eq 1 do read a $a if test $a = quitC then break fi d

This is the code: while test 1 -eq 1 do read a $a if test $a = stop then break fi done I read a command on every loop an execute it. I check if the string equals the word stop to end the loop,but it say that I gave too many arguments to test. For example echo hello. Now the... (1 Reply)
Discussion started by: Max89
1 Replies

6. Shell Programming and Scripting

How to check weather a string is like test* or test* ot *test* in if condition

How to check weather a string is like test* or test* ot *test* in if condition (5 Replies)
Discussion started by: johnjerome
5 Replies

7. Shell Programming and Scripting

K script not running / syntax problem

Hi, I have following K script, that is in rc0.d directory to be run on shutdown. It's linked using the 'ln' command to init.d.Can anyone tell me as to why it's not running, or if i have incorrect syntax?I get: "test: argument expected type=uname -p + " When running it with sh -x ... (8 Replies)
Discussion started by: darrlaw
8 Replies

8. Shell Programming and Scripting

syntax for IF test or AWK for octal

Using korn shell. I am reading a file line by line. If a record has a carriage return (octal 015) then I append the second record to the first record. Not all records have a carriage return. I have the unix shell script working with grep, but when my file has +100,000 records it runs slow. I would... (3 Replies)
Discussion started by: sboxtops
3 Replies

9. Shell Programming and Scripting

Test shell script (PROBLEM)

Dears , kindly I wanna do test for one KSH script to know how is it working , the problem that I'm facing is whenever put "sh -x ./my_script.sh" the output seems very long & although I tried to to redirect it to files as it shown , but it failed :eek: :- sh -x ./my_script.sh >... (2 Replies)
Discussion started by: arm
2 Replies

10. Shell Programming and Scripting

Problem with if-else syntax

I'm calling the following if-else from nawk. But I keep getting an error at the "else". I've tried putting more brackets and ; but still I get complaints about the "else". Any ideas ? Thanks, wbrunc BEGIN { FS = "," ; OFS = "," } { if ( $8 ~ /A/ && $9 == B ) $1="4/29/2013" ; $2="J.Doe"... (2 Replies)
Discussion started by: wbrunc
2 Replies
Perl::Critic::Policy::ValuesAndExpressions::ProhibitQuotPerl::Critic::Policy::ValuesAndExpressions::ProhibitQuotesAsQuotelikeOperatorDelimiters(3)

NAME
Perl::Critic::Policy::ValuesAndExpressions::ProhibitQuotesAsQuotelikeOperatorDelimiters - Don't use quotes ("'", """, "`") as delimiters for the quote-like operators. AFFILIATION
This Policy is part of the core Perl::Critic distribution. DESCRIPTION
With the obvious exception of using single-quotes to prevent interpolation, using quotes with the quote-like operators kind of defeats the purpose of them and produces obfuscated code, causing problems for future maintainers and their editors/IDEs. $x = q"q"; #not ok $x = q'q'; #not ok $x = q`q`; #not ok $x = qq"q"; #not ok $x = qr"r"; #not ok $x = qw"w"; #not ok $x = qx`date`; #not ok $x =~ m"m"; #not ok $x =~ s"s"x"; #not ok $x =~ tr"t"r"; #not ok $x =~ y"x"y"; #not ok $x =~ m'$x'; #ok $x =~ s'$x'y'; #ok $x = qr'$x'm; #ok $x = qx'finger foo@bar'; #ok CONFIGURATION
This policy has three options: "single_quote_allowed_operators", "double_quote_allowed_operators", and "back_quote_allowed_operators", which control which operators are allowed to use each of "'", """, "`" as delimiters, respectively. The values allowed for these options are a whitespace delimited selection of the "m", "q", "qq", "qr", "qw", "qx", "s", "tr", and "y" operators. By default, double quotes and back quotes (backticks) are not allowed as delimiters for any operators and single quotes are allowed as delimiters for the "m", "qr", "qx", and "s" operators. These defaults are equivalent to having the following in your .perlcriticrc: [ValuesAndExpressions::ProhibitQuotesAsQuotelikeOperatorDelimiters] single_quote_allowed_operators = m s qr qx double_quote_allowed_operators = back_quote_allowed_operators = SUGGESTED BY
Michael Schwern AUTHOR
Elliot Shank "<perl@galumph.com>" COPYRIGHT
Copyright (c) 2007-2011 Elliot Shank. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of this license can be found in the LICENSE file included with this module. perl v5.16.3 Perl::Critic::Policy::ValuesAndExpressions::ProhibitQuotesAsQuotelikeOperatorDelimiters(3)
All times are GMT -4. The time now is 02:23 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy