Sponsored Content
Top Forums Shell Programming and Scripting Ensuring A String Doesn't Begin With Space Post 302231786 by otheus on Wednesday 3rd of September 2008 06:42:33 AM
Old 09-03-2008
My God, Dennis, that's overkill.

Silentwolf, you're on the right track -- but the if statement won't work without double-quoting the space on the left-side. And then it won't work because the expansion of g_name results in a space gobbled up by the parser before finding its way to expr. Just prefix the expression with a character and get the 2nd character.

Code:
elif [ "`expr substr X$g_name 2 1`" = " " ] ; then
                                                echo "Given name may not begin with a space."

But I think there is a simpler way:

Code:
elif [ "`echo $g_name`" = "$g_name" ] ; then
                                                echo "Given name may not begin with a space."

HOWEVER, that will fail if the name contains MULTIPLE spaces or trails with a space (the echo command will seemingly "compress" each into one space and cut off the ending spaces).

Finally, if using ksh or bash, you can use the ${#%} operators, such as this:
Code:
elif [ " ${g_name# }" = "$g_name" ] ; then
                                                echo "Given name may not begin with a space."

This strips the leading space of g_name if it's there, then prefixes the space to g_name. If that is different than $g_name, it means the strip failed. There are other ways to do this, like:

Code:
elif [ "${g_name# }" != "$gname" ] ; then
                                                echo "Given name may not begin with a space."

OR

Code:
elif [ "${g_name%% *}" = "" ] ; then
                                                echo "Given name may not begin with a space."

Which is the reverse -- you cut everything after the space, including the space, and if the resulting string is empty, the cut succeeded and started with the first character of the string, ie, the first character was blank.
 

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk BEGIN END and string matching problem

Hi, Contents of BBS-list file: foo foo foo awk ' BEGIN { print "Analysis of \"foo\"" } /foo/ { ++n } END { print "\"foo\" appears", n, "times." }' BBS-list Output: Analysis of "foo" "foo" appears 3 times. awk ' (3 Replies)
Discussion started by: cola
3 Replies

2. Shell Programming and Scripting

Replace string with sed doesn't work

Hello, Unfortunately I don't found any working solution for my problem :/ I have pass file for dovecot authorizing in this format: user@domain.tld:{SSHA}Ykx2KVG/a2FKzjnctFFC2qFnrk9nvRmW:5000:5000:::: . . ...Now, I want to write some sh script for password changing for grep'ed user, in... (5 Replies)
Discussion started by: vincenty
5 Replies

3. Shell Programming and Scripting

Check whether a string begin with uppercase, lowercase or digit!

Hi every body! I wrote script on Fedora (bash shell) to check whether a tring enter from user console is start with a uppercase/lowercase letter or a digit. But with this script i have some problem when I enter from character from 'b' to 'z' --> result is uppercase. This code look like ok but i... (9 Replies)
Discussion started by: nguyendu0102
9 Replies

4. UNIX for Dummies Questions & Answers

Ensuring / at end of directory path

I have a variable name storing a directory path set dirpath = /home/chrisd/tatsh/branches/terr0.50/darwin I want to ensure there is always a "/" at the end, and if there are more than one "/", that I reduce it to just one. ---------- Post updated at 08:16 AM ---------- Previous update was... (3 Replies)
Discussion started by: kristinu
3 Replies

5. Shell Programming and Scripting

Inserting new line if two sequential lines begin with the same string

Hi I have a file like this: Peter North Mary Peter North Peter Borough Mary I need there to put 'X' (or anything) on a new line between the two lines where 'Peter' begins the line. There will be many matches to this string, but they will always begin with 'Peter'. Ie, the resulting... (2 Replies)
Discussion started by: majormajormajor
2 Replies

6. Shell Programming and Scripting

How to test that a string doesn't contain specific characters?

Hi ! :) I made this : #!/bin/bash rsa_dir="/etc/openvpn/easy-rsa/" rsa_key_dir="/etc/openvpn/easy-rsa/keys/" ccd_dir="/etc/openvpn/ccd/" regex_special_char='' cd $rsa_dir while read -p "Please can you enter the vpn's username : " username ] || ] || ] || ] do echo "Your entry... (10 Replies)
Discussion started by: Arnaudh78
10 Replies

7. Shell Programming and Scripting

Ensuring certain processes do not show up in process table

i've read somewhere a long time ago that there's a way to hide the workings of a script in sub functions so that when run, it doesn't show up in the process table. is this really possible? for instance, i need to run a command that has a password in it. and when that;s being run, it can be... (2 Replies)
Discussion started by: SkySmart
2 Replies

8. UNIX for Beginners Questions & Answers

Delete Directories and its files that begin with the same character string

I wrote a shell script program that supposed to delete any directories and its files that begin with the same character string . The program is designed to delete directories and its files that are one day old or less and only the directories that begin with the same character string. The problem... (1 Reply)
Discussion started by: dellanicholson
1 Replies

9. UNIX for Beginners Questions & Answers

C shell concatenate string doesn't work

I have the following code: #!/bin/csh clear set cloud_file="/home/labs/koren/davidsr/general_scripts/MFP_10_PP_Parmas.txt" # to fill set mie_tables_dir='/home/labs/koren/davidsr/SHDOM_MAIN/MIE_TABLES/non_polo_wave_0.7_water_50R_s0.5_e25_max_70.mie' # to fill set prp_dir='${pp_dir}/pp_prp/'... (2 Replies)
Discussion started by: student_wiz
2 Replies
GNUNET-NAMESTORE(1)					      General Commands Manual					       GNUNET-NAMESTORE(1)

NAME
gnunet-namestore - manipulate GNUnet zones SYNOPSIS
gnunet-namestore [options]-zZONEFILE DESCRIPTION
gnunet-namestore can be used to create and manipulate a GNS zone. OPTIONS
-a, --add Desired operation is adding a record -c FILENAME, --config=FILENAME Use the configuration file FILENAME. -d, --delete Desired operation is deleting a record -D, --display Desired operation is listing of matching records -e TIME, --expiration=TIME Specifies expiration time of record to add; format is relative time, i.e "1 h" or "7 d 30 m". Supported units are "ms", "s", "min" or "minutes", "h" (hours), "d" (days) and "a" (years). -h, --help Print short help on options. -L LOGLEVEL, --loglevel=LOGLEVEL Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and ERROR. -n NAME, --name=NAME Name of the record to add/delete/display -t TYPE, --type=TYPE Type of the record to add/delete/display (i.e. "A", "AAAA", "NS", "PKEY", "MX" etc.) -v, --version Print GNUnet version number. -V VALUE, --value=VALUE Value to store or remove from the GNS zone. Specific format depends on the record type. A records expect a dotted decimal IPv4 address, AAAA records an IPv6 address, PKEY a public key in GNUnet's printable format, and CNAME and NS records should be a domain name. -z FILENAME, --zonekey=FILENAME Specifies the filename with the private key for the zone (mandatory option) BUGS
Report bugs by using Mantis <https://gnunet.org/bugs/> or by sending electronic mail to <gnunet-developers@gnu.org> SEE ALSO
gnunet-gns(1) GNUnet Mar 5, 2012 GNUNET-NAMESTORE(1)
All times are GMT -4. The time now is 09:05 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy