First, any programming jobs out there ????? REXX - try REXX PLUS - REXX - crosses ALL platforms Windows, Linux, Mainframe, etc I used it for 24 years on the mainframe, plus 13 years on Windows and now 11 years on Linux 1) SIMPLE 2) NO ESCAPE chars 3) NO VARIABLES TO PREDEFINE 3) comment = /* */ 4) single quotes is a command to pass to shell 5) Return code checking with redirection to a REXX label (in this case, just exit because something is wrong) This does a mirror of sda1 to sdb1 #!/usr/bin/rexx trace results /* */ 'umount /dev/sdb1' 'mount /dev/sdb1 /mnt' IF RC <> 0 THEN EXIT /* */ 'rsync -av --delete /bin/ /mnt/bin/' /* */ 'rsync -av --delete /boot/ /mnt/boot/' /* */ 'rsync -av --delete /dev/ /mnt/dev/' /* */ 'rsync -av --delete /etc/ /mnt/etc/' /* */ 'rsync -av --delete /lib/ /mnt/lib/' /* */ 'rsync -av --delete /opt/ /mnt/opt/' /* */ /*'rsync -av --delete /proc/ /mnt/proc/' */ /* */ 'rsync -av /root/ /mnt/root/' /* */ 'rsync -av --delete /sbin/ /mnt/sbin/' /* */ 'rsync -av --delete /srv/ /mnt/srv/' /* */ 'rsync -av --delete /usr/ /mnt/usr/' /* */ 'rsync -av --delete --exclude=/lib/ntp/ /var/ /mnt/var/' /* */ 'df' /* */ 'umount /dev/sdb1' /* */ exit -------------------------------------- 1) concat two fields = || 2) variables built on the fly 3) word = blank delimited char string Here is a simple name / address conversion program #!/usr/bin/rexx /* */ DO FOREVER recin = LINEIN('NameAddress.txt') IF recin = "" THEN EXIT /* ***** convert all to upper case ***** */ UPPER recin /* ***** breakdown by fields ***** */ name = SUBSTR(recin,1,20) address = SUBSTR(recin,21,20) city = SUBSTR(recin,41,20) state = SUBSTR(recin,61,10) zip = SUBSTR(recin,71,20) /* ***** convert name to last name, first name ***** */ name = word(name,2)||", "||word(name,1) /* ***** convert city state zip to mailing format ***** */ csz = word(city,1)||", "||word(state,1)||" "||word(zip,1) /* ***** build output record ***** */ recout = "" recout = OVERLAY(name,recout,1,20) recout = OVERLAY(address,recout,21,20) recout = OVERLAY(csz,recout,41,40) call LINEOUT 'converted.txt', recout END /* DO */ EXIT --------------------
From the mainframe days - Set Buffer Address
Again, variables built on the fly 1) INITIALIZE is a label /***********************************************************************/ /* SET BUFFER ADDRESS */ /***********************************************************************/ MAIN: CALL INITIALIZE PARSE UPPER ARG ROW COLUMN SUB = (( ROW * 80 ) - 80 ) + COLUMN - 1 SAY 'ROW' ROW 'COLUMN' COLUMN ' = X'''||SBATABLE.SUB'''' EXIT /***********************************************************************/ /* SET BUFFER ADDRESS */ /***********************************************************************/ INITIALIZE: /**************************/ /* VALUES ARE 0 TO 1919 */ /* SUBSCRIPT IS 1 TO 1920 */ /**************************/ SBAVALUE = '' SBAVALUE = SBAVALUE||'404040C140C240C340C440C540C640C740C840C9404A404B404C404D404E404F' SBAVALUE = SBAVALUE||'405040D140D240D340D440D540D640D740D840D9405A405B405C405D405E405F' SBAVALUE = SBAVALUE||'4060406140E240E340E440E540E640E740E840E9406A406B406C406D406E406F' SBAVALUE = SBAVALUE||'40F040F140F240F340F440F540F640F740F840F9407A407B407C407D407E407F' SBAVALUE = SBAVALUE||'C140C1C1C1C2C1C3C1C4C1C5C1C6C1C7C1C8C1C9C14AC14BC14CC14DC14EC14F' SBAVALUE = SBAVALUE||'C150C1D1C1D2C1D3C1D4C1D5C1D6C1D7C1D8C1D9C15AC15BC15CC15DC15EC15F' SBAVALUE = SBAVALUE||'C160C161C1E2C1E3C1E4C1E5C1E6C1E7C1E8C1E9C16AC16BC16CC16DC16EC16F' SBAVALUE = SBAVALUE||'C1F0C1F1C1F2C1F3C1F4C1F5C1F6C1F7C1F8C1F9C17AC17BC17CC17DC17EC17F' SBAVALUE = SBAVALUE||'C240C2C1C2C2C2C3C2C4C2C5C2C6C2C7C2C8C2C9C24AC24BC24CC24DC24EC24F' SBAVALUE = SBAVALUE||'C250C2D1C2D2C2D3C2D4C2D5C2D6C2D7C2D8C2D9C25AC25BC25CC25DC25EC25F' SBAVALUE = SBAVALUE||'C260C261C2E2C2E3C2E4C2E5C2E6C2E7C2E8C2E9C26AC26BC26CC26DC26EC26F' SBAVALUE = SBAVALUE||'C2F0C2F1C2F2C2F3C2F4C2F5C2F6C2F7C2F8C2F9C27AC27BC27CC27DC27EC27F' SBAVALUE = SBAVALUE||'C340C3C1C3C2C3C3C3C4C3C5C3C6C3C7C3C8C3C9C34AC34BC34CC34DC34EC34F' SBAVALUE = SBAVALUE||'C350C3D1C3D2C3D3C3D4C3D5C3D6C3D7C3D8C3D9C35AC35BC35CC35DC35EC35F' SBAVALUE = SBAVALUE||'C360C361C3E2C3E3C3E4C3E5C3E6C3E7C3E8C3E9C36AC36BC36CC36DC36EC36F' SBAVALUE = SBAVALUE||'C3F0C3F1C3F2C3F3C3F4C3F5C3F6C3F7C3F8C3F9C37AC37BC37CC37DC37EC37F' SBAVALUE = SBAVALUE||'C440C4C1C4C2C4C3C4C4C4C5C4C6C4C7C4C8C4C9C44AC44BC44CC44DC44EC44F' SBAVALUE = SBAVALUE||'C450C4D1C4D2C4D3C4D4C4D5C4D6C4D7C4D8C4D9C45AC45BC45CC45DC45EC45F' SBAVALUE = SBAVALUE||'C460C461C4E2C4E3C4E4C4E5C4E6C4E7C4E8C4E9C46AC46BC46CC46DC46EC46F' SBAVALUE = SBAVALUE||'C4F0C4F1C4F2C4F3C4F4C4F5C4F6C4F7C4F8C4F9C47AC47BC47CC47DC47EC47F' SBAVALUE = SBAVALUE||'C540C5C1C5C2C5C3C5C4C5C5C5C6C5C7C5C8C5C9C54AC54BC54CC54DC54EC54F' SBAVALUE = SBAVALUE||'C550C5D1C5D2C5D3C5D4C5D5C5D6C5D7C5D8C5D9C55AC55BC55CC55DC55EC55F' SBAVALUE = SBAVALUE||'C560C561C5E2C5E3C5E4C5E5C5E6C5E7C5E8C5E9C56AC56BC56CC56DC56EC56F' SBAVALUE = SBAVALUE||'C5F0C5F1C5F2C5F3C5F4C5F5C5F6C5F7C5F8C5F9C57AC57BC57CC57DC57EC57F' SBAVALUE = SBAVALUE||'C640C6C1C6C2C6C3C6C4C6C5C6C6C6C7C6C8C6C9C64AC64BC64CC64DC64EC64F' SBAVALUE = SBAVALUE||'C650C6D1C6D2C6D3C6D4C6D5C6D6C6D7C6D8C6D9C65AC65BC65CC65DC65EC65F' SBAVALUE = SBAVALUE||'C660C661C6E2C6E3C6E4C6E5C6E6C6E7C6E8C6E9C66AC66BC66CC66DC66EC66F' SBAVALUE = SBAVALUE||'C6F0C6F1C6F2C6F3C6F4C6F5C6F6C6F7C6F8C6F9C67AC67BC67CC67DC67EC67F' SBAVALUE = SBAVALUE||'C740C7C1C7C2C7C3C7C4C7C5C7C6C7C7C7C8C7C9C74AC74BC74CC74DC74EC74F' SBAVALUE = SBAVALUE||'C750C7D1C7D2C7D3C7D4C7D5C7D6C7D7C7D8C7D9C75AC75BC75CC75DC75EC75F' SBAVALUE = SBAVALUE||'C760C761C7E2C7E3C7E4C7E5C7E6C7E7C7E8C7E9C76AC76BC76CC76DC76EC76F' SBAVALUE = SBAVALUE||'C7F0C7F1C7F2C7F3C7F4C7F5C7F6C7F7C7F8C7F9C77AC77BC77CC77DC77EC77F' SBAVALUE = SBAVALUE||'C840C8C1C8C2C8C3C8C4C8C5C8C6C8C7C8C8C8C9C84AC84BC84CC84DC84EC84F' SBAVALUE = SBAVALUE||'C850C8D1C8D2C8D3C8D4C8D5C8D6C8D7C8D8C8D9C85AC85BC85CC85DC85EC85F' SBAVALUE = SBAVALUE||'C860C861C8E2C8E3C8E4C8E5C8E6C8E7C8E8C8E9C86AC86BC86CC86DC86EC86F' SBAVALUE = SBAVALUE||'C8F0C8F1C8F2C8F3C8F4C8F5C8F6C8F7C8F8C8F9C87AC87BC87CC87DC87EC87F' SBAVALUE = SBAVALUE||'C940C9C1C9C2C9C3C9C4C9C5C9C6C9C7C9C8C9C9C94AC94BC94CC94DC94EC94F' SBAVALUE = SBAVALUE||'C950C9D1C9D2C9D3C9D4C9D5C9D6C9D7C9D8C9D9C95AC95BC95CC95DC95EC95F' SBAVALUE = SBAVALUE||'C960C961C9E2C9E3C9E4C9E5C9E6C9E7C9E8C9E9C96AC96BC96CC96DC96EC96F' SBAVALUE = SBAVALUE||'C9F0C9F1C9F2C9F3C9F4C9F5C9F6C9F7C9F8C9F9C97AC97BC97CC97DC97EC97F' SBAVALUE = SBAVALUE||'4A404AC14AC24AC34AC44AC54AC64AC74AC84AC94A4A4A4B4A4C4A4D4A4E4A4F' SBAVALUE = SBAVALUE||'4A504AD14AD24AD34AD44AD54AD64AD74AD84AD94A5A4A5B4A5C4A5D4A5E4A5F' SBAVALUE = SBAVALUE||'4A604A614AE24AE34AE44AE54AE64AE74AE84AE94A6A4A6B4A6C4A6D4A6E4A6F' SBAVALUE = SBAVALUE||'4AF04AF14AF24AF34AF44AF54AF64AF74AF84AF94A7A4A7B4A7C4A7D4A7E4A7F' SBAVALUE = SBAVALUE||'4B404BC14BC24BC34BC44BC54BC64BC74BC84BC94B4A4B4B4B4C4B4D4B4E4B4F' SBAVALUE = SBAVALUE||'4B504BD14BD24BD34BD44BD54BD64BD74BD84BD94B5A4B5B4B5C4B5D4B5E4B5F' SBAVALUE = SBAVALUE||'4B604B614BE24BE34BE44BE54BE64BE74BE84BE94B6A4B6B4B6C4B6D4B6E4B6F' SBAVALUE = SBAVALUE||'4BF04BF14BF24BF34BF44BF54BF64BF74BF84BF94B7A4B7B4B7C4B7D4B7E4B7F' SBAVALUE = SBAVALUE||'4C404CC14CC24CC34CC44CC54CC64CC74CC84CC94C4A4C4B4C4C4C4D4C4E4C4F' SBAVALUE = SBAVALUE||'4C504CD14CD24CD34CD44CD54CD64CD74CD84CD94C5A4C5B4C5C4C5D4C5E4C5F' SBAVALUE = SBAVALUE||'4C604C614CE24CE34CE44CE54CE64CE74CE84CE94C6A4C6B4C6C4C6D4C6E4C6F' SBAVALUE = SBAVALUE||'4CF04CF14CF24CF34CF44CF54CF64CF74CF84CF94C7A4C7B4C7C4C7D4C7E4C7F' SBAVALUE = SBAVALUE||'4D404DC14DC24DC34DC44DC54DC64DC74DC84DC94D4A4D4B4D4C4D4D4D4E4D4F' SBAVALUE = SBAVALUE||'4D504DD14DD24DD34DD44DD54DD64DD74DD84DD94D5A4D5B4D5C4D5D4D5E4D5F' SBAVALUE = SBAVALUE||'4D604D614DE24DE34DE44DE54DE64DE74DE84DE94D6A4D6B4D6C4D6D4D6E4D6F' SBAVALUE = SBAVALUE||'4DF04DF14DF24DF34DF44DF54DF64DF74DF84DF94D7A4D7B4D7C4D7D4D7E4D7F' SBAVALUE = SBAVALUE||'4E404EC14EC24EC34EC44EC54EC64EC74EC84EC94E4A4E4B4E4C4E4D4E4E4E4F' SBAVALUE = SBAVALUE||'4E504ED14ED24ED34ED44ED54ED64ED74ED84ED94E5A4E5B4E5C4E5D4E5E4E5F' SBAVALUE = SBAVALUE||'4E604E614EE24EE34EE44EE54EE64EE74EE84EE94E6A4E6B4E6C4E6D4E6E4E6F' SBAVALUE = SBAVALUE||'4EF04EF14EF24EF34EF44EF54EF64EF74EF84EF94E7A4E7B4E7C4E7D4E7E4E7F' SBAVALUE = SBAVALUE||'4F404FC14FC24FC34FC44FC54FC64FC74FC84FC94F4A4F4B4F4C4F4D4F4E4F4F' SBAVALUE = SBAVALUE||'4F504FD14FD24FD34FD44FD54FD64FD74FD84FD94F5A4F5B4F5C4F5D4F5E4F5F' SBAVALUE = SBAVALUE||'4F604F614FE24FE34FE44FE54FE64FE74FE84FE94F6A4F6B4F6C4F6D4F6E4F6F' SBAVALUE = SBAVALUE||'4FF04FF14FF24FF34FF44FF54FF64FF74FF84FF94F7A4F7B4F7C4F7D4F7E4F7F' SBAVALUE = SBAVALUE||'504050C150C250C350C450C550C650C750C850C9504A504B504C504D504E504F' SBAVALUE = SBAVALUE||'505050D150D250D350D450D550D650D750D850D9505A505B505C505D505E505F' SBAVALUE = SBAVALUE||'5060506150E250E350E450E550E650E750E850E9506A506B506C506D506E506F' SBAVALUE = SBAVALUE||'50F050F150F250F350F450F550F650F750F850F9507A507B507C507D507E507F' SBAVALUE = SBAVALUE||'D140D1C1D1C2D1C3D1C4D1C5D1C6D1C7D1C8D1C9D14AD14BD14CD14DD14ED14F' SBAVALUE = SBAVALUE||'D150D1D1D1D2D1D3D1D4D1D5D1D6D1D7D1D8D1D9D15AD15BD15CD15DD15ED15F' SBAVALUE = SBAVALUE||'D160D161D1E2D1E3D1E4D1E5D1E6D1E7D1E8D1E9D16AD16BD16CD16DD16ED16F' SBAVALUE = SBAVALUE||'D1F0D1F1D1F2D1F3D1F4D1F5D1F6D1F7D1F8D1F9D17AD17BD17CD17DD17ED17F' SBAVALUE = SBAVALUE||'D240D2C1D2C2D2C3D2C4D2C5D2C6D2C7D2C8D2C9D24AD24BD24CD24DD24ED24F' SBAVALUE = SBAVALUE||'D250D2D1D2D2D2D3D2D4D2D5D2D6D2D7D2D8D2D9D25AD25BD25CD25DD25ED25F' SBAVALUE = SBAVALUE||'D260D261D2E2D2E3D2E4D2E5D2E6D2E7D2E8D2E9D26AD26BD26CD26DD26ED26F' SBAVALUE = SBAVALUE||'D2F0D2F1D2F2D2F3D2F4D2F5D2F6D2F7D2F8D2F9D27AD27BD27CD27DD27ED27F' SBAVALUE = SBAVALUE||'D340D3C1D3C2D3C3D3C4D3C5D3C6D3C7D3C8D3C9D34AD34BD34CD34DD34ED34F' SBAVALUE = SBAVALUE||'D350D3D1D3D2D3D3D3D4D3D5D3D6D3D7D3D8D3D9D35AD35BD35CD35DD35ED35F' SBAVALUE = SBAVALUE||'D360D361D3E2D3E3D3E4D3E5D3E6D3E7D3E8D3E9D36AD36BD36CD36DD36ED36F' SBAVALUE = SBAVALUE||'D3F0D3F1D3F2D3F3D3F4D3F5D3F6D3F7D3F8D3F9D37AD37BD37CD37DD37ED37F' SBAVALUE = SBAVALUE||'D440D4C1D4C2D4C3D4C4D4C5D4C6D4C7D4C8D4C9D44AD44BD44CD44DD44ED44F' SBAVALUE = SBAVALUE||'D450D4D1D4D2D4D3D4D4D4D5D4D6D4D7D4D8D4D9D45AD45BD45CD45DD45ED45F' SBAVALUE = SBAVALUE||'D460D461D4E2D4E3D4E4D4E5D4E6D4E7D4E8D4E9D46AD46BD46CD46DD46ED46F' SBAVALUE = SBAVALUE||'D4F0D4F1D4F2D4F3D4F4D4F5D4F6D4F7D4F8D4F9D47AD47BD47CD47DD47ED47F' SBAVALUE = SBAVALUE||'D540D5C1D5C2D5C3D5C4D5C5D5C6D5C7D5C8D5C9D54AD54BD54CD54DD54ED54F' SBAVALUE = SBAVALUE||'D550D5D1D5D2D5D3D5D4D5D5D5D6D5D7D5D8D5D9D55AD55BD55CD55DD55ED55F' SBAVALUE = SBAVALUE||'D560D561D5E2D5E3D5E4D5E5D5E6D5E7D5E8D5E9D56AD56BD56CD56DD56ED56F' SBAVALUE = SBAVALUE||'D5F0D5F1D5F2D5F3D5F4D5F5D5F6D5F7D5F8D5F9D57AD57BD57CD57DD57ED57F' SBAVALUE = SBAVALUE||'D640D6C1D6C2D6C3D6C4D6C5D6C6D6C7D6C8D6C9D64AD64BD64CD64DD64ED64F' SBAVALUE = SBAVALUE||'D650D6D1D6D2D6D3D6D4D6D5D6D6D6D7D6D8D6D9D65AD65BD65CD65DD65ED65F' SBAVALUE = SBAVALUE||'D660D661D6E2D6E3D6E4D6E5D6E6D6E7D6E8D6E9D66AD66BD66CD66DD66ED66F' SBAVALUE = SBAVALUE||'D6F0D6F1D6F2D6F3D6F4D6F5D6F6D6F7D6F8D6F9D67AD67BD67CD67DD67ED67F' SBAVALUE = SBAVALUE||'D740D7C1D7C2D7C3D7C4D7C5D7C6D7C7D7C8D7C9D74AD74BD74CD74DD74ED74F' SBAVALUE = SBAVALUE||'D750D7D1D7D2D7D3D7D4D7D5D7D6D7D7D7D8D7D9D75AD75BD75CD75DD75ED75F' SBAVALUE = SBAVALUE||'D760D761D7E2D7E3D7E4D7E5D7E6D7E7D7E8D7E9D76AD76BD76CD76DD76ED76F' SBAVALUE = SBAVALUE||'D7F0D7F1D7F2D7F3D7F4D7F5D7F6D7F7D7F8D7F9D77AD77BD77CD77DD77ED77F' SBAVALUE = SBAVALUE||'D840D8C1D8C2D8C3D8C4D8C5D8C6D8C7D8C8D8C9D84AD84BD84CD84DD84ED84F' SBAVALUE = SBAVALUE||'D850D8D1D8D2D8D3D8D4D8D5D8D6D8D7D8D8D8D9D85AD85BD85CD85DD85ED85F' SBAVALUE = SBAVALUE||'D860D861D8E2D8E3D8E4D8E5D8E6D8E7D8E8D8E9D86AD86BD86CD86DD86ED86F' SBAVALUE = SBAVALUE||'D8F0D8F1D8F2D8F3D8F4D8F5D8F6D8F7D8F8D8F9D87AD87BD87CD87DD87ED87F' SBAVALUE = SBAVALUE||'D940D9C1D9C2D9C3D9C4D9C5D9C6D9C7D9C8D9C9D94AD94BD94CD94DD94ED94F' SBAVALUE = SBAVALUE||'D950D9D1D9D2D9D3D9D4D9D5D9D6D9D7D9D8D9D9D95AD95BD95CD95DD95ED95F' SBAVALUE = SBAVALUE||'D960D961D9E2D9E3D9E4D9E5D9E6D9E7D9E8D9E9D96AD96BD96CD96DD96ED96F' SBAVALUE = SBAVALUE||'D9F0D9F1D9F2D9F3D9F4D9F5D9F6D9F7D9F8D9F9D97AD97BD97CD97DD97ED97F' SBAVALUE = SBAVALUE||'5A405AC15AC25AC35AC45AC55AC65AC75AC85AC95A4A5A4B5A4C5A4D5A4E5A4F' SBAVALUE = SBAVALUE||'5A505AD15AD25AD35AD45AD55AD65AD75AD85AD95A5A5A5B5A5C5A5D5A5E5A5F' SBAVALUE = SBAVALUE||'5A605A615AE25AE35AE45AE55AE65AE75AE85AE95A6A5A6B5A6C5A6D5A6E5A6F' SBAVALUE = SBAVALUE||'5AF05AF15AF25AF35AF45AF55AF65AF75AF85AF95A7A5A7B5A7C5A7D5A7E5A7F' SBAVALUE = SBAVALUE||'5B405BC15BC25BC35BC45BC55BC65BC75BC85BC95B4A5B4B5B4C5B4D5B4E5B4F' SBAVALUE = SBAVALUE||'5B505BD15BD25BD35BD45BD55BD65BD75BD85BD95B5A5B5B5B5C5B5D5B5E5B5F' SBAVALUE = SBAVALUE||'5B605B615BE25BE35BE45BE55BE65BE75BE85BE95B6A5B6B5B6C5B6D5B6E5B6F' SBAVALUE = SBAVALUE||'5BF05BF15BF25BF35BF45BF55BF65BF75BF85BF95B7A5B7B5B7C5B7D5B7E5B7F' SBAVALUE = SBAVALUE||'5C405CC15CC25CC35CC45CC55CC65CC75CC85CC95C4A5C4B5C4C5C4D5C4E5C4F' SBAVALUE = SBAVALUE||'5C505CD15CD25CD35CD45CD55CD65CD75CD85CD95C5A5C5B5C5C5C5D5C5E5C5F' SBAVALUE = SBAVALUE||'5C605C615CE25CE35CE45CE55CE65CE75CE85CE95C6A5C6B5C6C5C6D5C6E5C6F' SBAVALUE = SBAVALUE||'5CF05CF15CF25CF35CF45CF55CF65CF75CF85CF95C7A5C7B5C7C5C7D5C7E5C7F' SBAVALUE = SBAVALUE||'5D405DC15DC25DC35DC45DC55DC65DC75DC85DC95D4A5D4B5D4C5D4D5D4E5D4F' SBAVALUE = SBAVALUE||'5D505DD15DD25DD35DD45DD55DD65DD75DD85DD95D5A5D5B5D5C5D5D5D5E5D5F' SBAVALUE = SBAVALUE||'5D605D615DE25DE35DE45DE55DE65DE75DE85DE95D6A5D6B5D6C5D6D5D6E5D6F' SBAVALUE = SBAVALUE||'5DF05DF15DF25DF35DF45DF55DF65DF75DF85DF95D7A5D7B5D7C5D7D5D7E5D7F' DO SUB = 1 TO 1920 SBATABLE.SUB = SUBSTR(SBAVALUE,(SUB*4)-3,4) END /* DO */ RETURN -- Duaine Hechler Piano, Player Piano, Pump Organ Tuning, Servicing & Rebuilding Reed Organ Society Member Florissant, MO 63034 (314) 838-5587 dahechler@att.net www.hechlerpianoandorgan.com -- Home & Business user of Linux - 10 years -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org For additional commands, e-mail: opensuse+help@opensuse.org