![]() |
|
|
|
|
|||||||
| Forums | Portal | Register | Forum Rules | FAQ | Contribute | Members List | Arcade | Search | Today's Posts | Mark Forums Read |
| Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts here. |
|
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Substr in shell script | gjithin | Shell Programming and Scripting | 7 | 05-10-2008 01:40 PM |
| substr() thru awk Korn Shell Script | sbryant | Shell Programming and Scripting | 4 | 01-24-2008 07:16 AM |
| cd from a Bourne Shell Script - Please Help | fawqati | Shell Programming and Scripting | 10 | 05-25-2006 12:26 AM |
| Bourne Shell Script | dmhonor914 | UNIX for Dummies Questions & Answers | 2 | 12-10-2003 08:25 AM |
| bourne shell script | psrinivas | Shell Programming and Scripting | 2 | 12-06-2001 11:38 AM |
|
|
Submit Tools | LinkBack | Thread Tools | Display Modes |
|
|||
|
Trouble using substr function with Bourne shell script
Hi,
I'm a newbie to UNIX scripting and I'm having some trouble compiling my script. I'm using the Bourne Shell and cannot seem to use the substr function correctly. I'm trying to extract the last two digits of a year that's stored in a variable based off of a condition. I've searched the forums and google trying suggestions/formatting, but I keep getting a syntax error that I can't seem to fix. Does anyone see any syntax issues with my substr code (FISCAL_CODE) below? #!/usr/bin/sh CURRENT_DATE=`date +%m%d%Y` CURRENT_YEAR=`date +%Y` START_YEAR=`expr $CURRENT_YEAR - 1` #Concatenate the static fiscal year's start/end #month and day with the formatted years. START_FY='0701'$START_YEAR END_FY='0630'$CURRENT_YEAR #Define the actual fiscal year depending on where #the current date falls within the fiscal year range. if [ $CURRENT_DATE -gt $START_FY ] then if [ $CURRENT_DATE -lt $END_FY ] then FISCAL_YEAR=$CURRENT_YEAR else FISCAL_YEAR=`expr $CURRENT_YEAR + 1` fi fi #Define the fiscal code by substringing the last two #digits of the acutal fiscal year. FISCAL_CODE=substr($FISCAL_YEAR 3 2) #FISCAL_CODE=`expr substr $FISCAL_YEAR 3 2` echo Today is $CURRENT_DATE echo Current Year is $CURRENT_YEAR echo Start FY $START_FY echo End FY $END_FY echo Fiscal Year is $FISCAL_YEAR echo Fiscal Code is $FISCAL_CODE ------------------------------------------------------------------- This is the output I'm viewing: expr: syntax error <or> syntax error at line 26: `FISCAL_CODE=substr' unexpected Today is 09272005 Current Year is 2005 Start FY 07012004 End FY 06302005 Fiscal Year is 2006 Fiscal Code is If there's anything else I can answer or provide, please let me know. Any assistance would be greatly appreciated. Thanks, Eric |
| Forum Sponsor | ||
|
|
|
|||
|
Trouble using substr function with Bourne shell script
Perderabo,
I used that statement and it works good, but it seems to only print the value to the screen. I'd really like to store that value in a variable for another part of code I will use. I tried to use the following statement and got an error when I tried to display the value using echo: FISCAL_CODE=awk 'END { print substr(val,3,2) }' val=$FISCAL_YEAR < /dev/null error: : END { print substr(val,3,2) }: not found Is there a way to store that value in a variable? Not sure if my syntax is incorrect. Does awk only work to output to the screen? As for using a bash or ksh script instead, this is part of a bourne script that I am modifying. Please let me know what you think when you can. Thanks, Eric |