07-07-2004
Quote:
Originally posted by dbrundrett
Can I ask you to tell me what each bit of this assignment does...
lastchr=${a#${a%?}}
What does 'a#' and 'a%?' do...
Thanks a lot
First ${a%<pattern>} strips the pattern off the end of the contents of the variable. And ? is a pattern that matches a single character. So ${a%?} is $a with the last character missing.
And ${a#<pattern>} strips the pattern off of the front of the variable.
Unlike expr, these are shell built-in's. To run expr, you must fork() and then exec(). Staying with shell built-in's delivers real performance benefits.
10 More Discussions You Might Find Interesting
1. UNIX for Advanced & Expert Users
While writing a shell script i happen to store some value in a string. Lets say the value is 59788.
Now in this script i want to get the value 9788 removing the first charater 5. The original string length usually remains constant.
Is there a single line command to do this or any simple way to... (4 Replies)
Discussion started by: npn
4 Replies
2. Shell Programming and Scripting
How do you test if a string is a number?
Trying to do something like this:
x="AS"
if( x is not a number ); then
x=0
fi
Because I want to do number arithmetic with x. (3 Replies)
Discussion started by: eur0dad
3 Replies
3. Programming
HI
Hi I have a character string which contains some special characters and I need it to display as a hex string.
For example, the sample i/p string: ×¥ïA Å gïÛý and
the o/p should be : D7A5EF4100C5010067EFDBFD
Any pointers or sample code pls. (5 Replies)
Discussion started by: axes
5 Replies
4. Shell Programming and Scripting
i have a file contains like this:
i want to create a script that will insert a comma "." after the 10th character so it would be look like this
thanks in advance (5 Replies)
Discussion started by: dakid
5 Replies
5. Shell Programming and Scripting
How can I extract the last character of a string (withou knowing how many characters are in that string ! ) (8 Replies)
Discussion started by: annelisa
8 Replies
6. Shell Programming and Scripting
If I have a string defined as:
MyString=abcde
echo $MyString
How can I loop through it character by character? I haven't been able to find a way to index the string so that I loop through it.
shew01 (10 Replies)
Discussion started by: shew01
10 Replies
7. Shell Programming and Scripting
hi
i try to test the last character in a variable (here $i )
assume i=kljlkjlkA it should be KO and lkjljjlT KO
if
then
echo "ending with A"
else
echo "no A at the end"
fi
whether i is ending or not with A i got "no A at the end"
i tried with simple [ double this is the... (3 Replies)
Discussion started by: Nicol
3 Replies
8. UNIX for Dummies Questions & Answers
Hello, can someone please explain to me why this happens:
myserver#echo "$nothing"
myserver#if ; then echo "nothing is a zero length string"; fi
nothing is a zero length string
myserver#if ; then echo "nothing is also a non-zero length string, apparently"; fi
nothing is also a non-zero... (5 Replies)
Discussion started by: longjon
5 Replies
9. Shell Programming and Scripting
Hello, Unix-Forums!
Is there a command that can check how long a user-entered string is?
Please don't give me a code, just the name of the command (playing around yourself is much more fun than just pasting code)
edit: I'm sorry, first hit of the forum search gave me the answer. (1 Reply)
Discussion started by: intelinside
1 Replies
10. Shell Programming and Scripting
Hi,
Anyone can help using SED searches a character string for a specified delimiter character, and returns a leading or trailing space/blank.
Text file :
"1"|"ExternalClassDEA519CF5"|"Art1"
"2"|"ExternalClass563EA516C"|"Art3"
"3"|"ExternalClass305ED16B8"|"Art9"
...
...
... (2 Replies)
Discussion started by: fspalero
2 Replies
EXPR(1) General Commands Manual EXPR(1)
NAME
expr - evaluate arguments as an expression
SYNOPSIS
expr arg ...
DESCRIPTION
The arguments are taken as an expression. After evaluation, the result is written on the standard output. Each token of the expression is
a separate argument.
The operators and keywords are listed below. The list is in order of increasing precedence, with equal precedence operators grouped.
expr | expr
yields the first expr if it is neither null nor `0', otherwise yields the second expr.
expr & expr
yields the first expr if neither expr is null or `0', otherwise yields `0'.
expr relop expr
where relop is one of < <= = != >= >, yields `1' if the indicated comparison is true, `0' if false. The comparison is numeric if
both expr are integers, otherwise lexicographic.
expr + expr
expr - expr
addition or subtraction of the arguments.
expr * expr
expr / expr
expr % expr
multiplication, division, or remainder of the arguments.
expr : expr
The matching operator compares the string first argument with the regular expression second argument; regular expression syntax is
the same as that of ed(1). The (...) pattern symbols can be used to select a portion of the first argument. Otherwise, the
matching operator yields the number of characters matched (`0' on failure).
( expr )
parentheses for grouping.
Examples:
To add 1 to the Shell variable a:
a=`expr $a + 1`
To find the filename part (least significant part) of the pathname stored in variable a, which may or may not contain `/':
expr $a : '.*/(.*)' '|' $a
Note the quoted Shell metacharacters.
SEE ALSO
ed(1), sh(1), test(1)
DIAGNOSTICS
Expr returns the following exit codes:
0 if the expression is neither null nor `0',
1 if the expression is null or `0',
2 for invalid expressions.
EXPR(1)