![]() |
|
|
google unix.com
|
|||||||
| Forums | Register | Forum Rules | Links | Albums | FAQ | Members List | Calendar | 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 and shell scripting languages here. |
More UNIX and Linux Forum Topics You Might Find Helpful
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| retrieved multiple lines on multiple places in a file | dala | Shell Programming and Scripting | 8 | 03-14-2008 03:28 PM |
| Commenting lines | rolex.mp | UNIX for Dummies Questions & Answers | 2 | 02-21-2007 04:54 AM |
| Want to execute rest of the script after the file is ready ... | csaha | Shell Programming and Scripting | 5 | 09-25-2006 05:04 AM |
| how to execute C code in linux machine | rajan_ka1 | Shell Programming and Scripting | 3 | 06-29-2006 06:26 AM |
| how 2 execute conbal code in unix | sushil_d10 | Shell Programming and Scripting | 1 | 05-04-2005 09:52 PM |
![]() |
|
|
LinkBack | Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
|
|
||||
|
How to execute the rest of the code after commenting multiple lines?
Hi,
As I have seen in this forum how to comment multiple lines in the script, but it does not work properly for me. It is blocking the code but it does not execute the rest of the codes. This is my code #! /usr/bin/ksh month='date +"m%"' : << Comments Block if [ "$month -eq 3 ] || [ "$month -eq 6 ] then echo "inc = 1" else echo "inc = 2" fi -- End Comments Block case $month in 3|6|9|12) echo "Yes";; *) echo "No";; esac echo "This is the last line" My query is after the comments block, it does not execute the case statement. Can you pls explain it? |
|
||||
|
Thanks - But still it does not work.
Quote:
Thanks for your reply. After trying with your sample code, it does not work for me. I dont know what might be the problem. |
|
|||||
|
It looks like there is some confusion here. What fpmurphy is trying to say is that you need to comment out the lines (if needed) that don't need to be executed using # sign, like this: Code:
# :<<COMMENTBLOCK # if [ "$month -eq 3 ] || [ "$month -eq 6 ] # then # echo "inc = 1" # else # echo "inc = 2" # fi # COMMENTBLOCK In case you are trying to use a HERE document, as suggested you need to get rid of the colon : in front of the sign <<, and no space at the final COMMENTBLOCK : Quote:
If you are trying to achieve something else with your script, then you need to look in your script and change it accordingly, or post here what are you trying to achieve. |
|
|||||
|
Hi. A few comments. First, there is a "quoted" string feature in the shells for HERE documents. The use prevents evaluation of everything up to the closing string, including unclosed quotes, variable issues, etc. Second, ksh does a good job of diagnosing a missing, closing, matching HERE document string -- bash (2 & 3) simply stop. A ksh example: Code:
#!/usr/bin/env ksh # @(#) s1 Demonstrate quick method to render code block inoperable. set -o nounset echo debug=":" debug="echo" ## The shebang using "env" line is designed for portability and # demonstrations. For higher security, use: # # #!/bin/ksh - ## Use local command version for the commands in this demonstration. echo "(Versions displayed with local utility \"version\")" version >/dev/null 2>&1 && version ksh echo echo " Commands before commented-out block." : <<'EOF' garbage junk worthless utterly without merit " crud inside of double quotes " ' debris inside single quote ' " mess inside unmatched double-quotes ' detritus inside an unmatched single-quote pair ... and so on. EOF echo echo " Commands after commented-out block." echo echo " Failed block quote due to unmatched HERE stings:" echo echo " Commands before commented-out block." : <<'MISSING' more junk OOPS! echo " Commands after commented-out block." exit 0 producing: Code:
% ./s1 (Versions displayed with local utility "version") pdksh 5.2.14 99/07/13.2 Commands before commented-out block. Commands after commented-out block. Failed block quote due to unmatched HERE stings: Commands before commented-out block. ./s1[53]: here document `MISSING' unclosed I don't use ksh for reasons of availability (my shebangs almost always use simple "sh"), but in this case ksh is superior ... cheers, drl |
![]() |
| Bookmarks |
| Tags |
| linux |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|