Sometimes you hit a home run with a computer software book. This one is it. You don't have much choice when it comes to Qshell documentation, but now, it doesn't matter. This book is the only one you'll ever need if you want to learn about Qshell. But what is Qshell anyway? It is a UNIX-style shell and utilities command interface. Together, the shell and utilities provide a powerful scripting environment.
This book not only teaches you all about Qshell in an easier manner than the Qshell manual, but you'll also find things IBM never documented there. Qshell is a great program, but it will do much more for you than IBM will tell you, and this book gives you the scoop on that inside information.
The knowledge gleaned here will also be largely applicable to the shells for Linux and Unix, so programmers not familiar with those platforms will find those shells much easier to learn after learning Qshell. And leveraging your knowledge is what employee value is all about.
Ted Holt and IBMer Fred Kulack take you through Qshell and show you the ins and outs with more examples than you can imagine. Further, the book is written for people who will be using modern languages like C and Java as well as those who are more comfortable with DDS, CL and RPG. So whatever your angle on the iSeries is, this book is what you've been looking for.
So why should you care about Qshell?
First, Qshell is not an alternate interface to the others. Qshell includes commands that are not found in QCMD and iSeries Navigator. Second, Qshell is well suited for working with the Integrated File System (IFS). Third, Qshell can run shell scripts from Unix platforms with little or no modification, enabling programmers from Unix systems to do productive work on the iSeries. Fourth, Qshell handles multi-threaded programming. Fifth, Qshell is a good environment for the creation of Java applications.
This incredible Qshell resource will teach you:
How to better manage IFS files in your applications
How to run Unix or Linux shells on an iSeries
How to implement Web/Java applications on an iSeries
How to to run AIX binaries on your iSeries if your business uses a PASE environment
How to automate your everyday, drudge work
And much more!
About authors
Ted Holt — Ted Holt has been working in the IT industry since 1981, primarily with IBM midrange computers. His industry experience includes the fields of manufacturing, healthcare, education, retail, and wholesale. Ted holds a master's degree in computer science and has taught in community colleges, universities, and vocational/technical schools.
Ted is the author of several books on programming topics, including Open Query File Magic!, Complete CL, Power CL, and the MC Press Encyclopedia of Tips, Techniques, and Programming Practices for iSeries and AS/400. He is also a frequent contributor to several magazines.
Fred A. Kulack — Fred Kulack is an IBM developer who has implemented portions of many of the UNIX-type API components on the iSeries. He has worked on Java and J2EE technologies such as JDBC, the Java Transaction API, and WebSphere and was part of the team that developed the Qshell interpreter. Fred now helps large IBM business partners with architecture, porting, and performance related to their C, C++, Java, and J2EE applications. He lives in Rochester, Minnesota.
Contents
CONTENTS Preface
Chapter 1: Introduction to Qshell Unix and Linux Shells Qshell Summary
Chapter 2: Running Qshell Qshell in an Interactive Job Qshell in Batch Jobs Redirecting Qshell Output Summary
Chapter 3: The EDTF Text Editor Starting EDTF Introducing the Stream-File Exercises Creating a New Stream File Revising a Stream File Summary
Chapter 4: Scripting Naming a Script File Running a Script File Comments The Magic Number Executable Commands Special Scripts Your First Script Summary
Chapter 5: Parameters and Variables, Defined Command-Line Arguments Retrieving Parameter Values Special Parameters Qshell Variables Predefined Variables Summary
Chapter 6: Using Parameters and Variables Variable Expansion Pattern Modifiers Substrings Substitution Expressions Finding the Length of a Value Concatenating Strings Numeric Constants Arithmetic Expressions Summary
Chapter 7: The Exit Status and Decision-Making Setting the Exit Status The True, False, and Null Utilities The If Command The Test Utility Conditional Execution Looping Structures Governed by the Exit Status Break and Continue Summary
Chapter 8: Additional Control Structures The For Loop The Select Construct The Case Construct Summary
Chapter 9: The Integrated File System Organization Paths Links Displaying the Contents of IFS Files Authority Permissions CCSIDs Summary
Chapter 10: Input and Output Standard Files Redirection The “Noclobber” Option Pipes and Pipelines Redirection Operators and Pipes Tee Overriding Redirection “Here” Documents Filters I/O Utilities File Descriptors Summary
Chapter 12: Commands Regular and Special Built-in Utilities Dual Implementations Script Interpreters External Utilities and the Magic Number Aliases Reserved Words Functions Simple and Compound Commands The CMD Parameter Processes Locating Commands Running Commands in the Background Command Substitution The Source (Dot) Utility The Xargs Utility The Exec Utility Command Interpretation The Eval Utility Summary
Chapter 13: Functions Function Syntax Displaying Function Definitions Deleting Function Definitions Parameters Variables Invoking Functions Return and the Exit Status Retrieving Output from Functions Summary
Chapter 18: Sed Forms of the Sed Command Sed Options Sed Commands Examples Sed Scripts Summary
Chapter 19: Writing Programs for Qshell Running Programs within Qshell Writing RPG Programs for Qshell Writing COBOL Programs for Qshell Writing C and C++ Programs for Qshell Writing Java Programs for Qshell Option Parameters Summary
Chapter 20: Accessing OS/400-Specific Objects System Liblist Sysval Datarea Dataq Db2 Sql Scripts Db2 in Interactive Mode Rfile Summary
Chapter 21: Application Development Tools The ISeries Tools for Developers Qshell and ASCII Data Graphical Utilities The Ez Utility Summary