• The Four Hundred
  • Subscribe
  • Media Kit
  • Contributors
  • About Us
  • Contact
Menu
  • The Four Hundred
  • Subscribe
  • Media Kit
  • Contributors
  • About Us
  • Contact
  • Why Use the Magic Number in Qshell Scripts?

    March 17, 2004 Hey, Ted

    I have not worked with Unix, so Qshell is a new adventure for me. I am curious about the “magic number,” the #! comment that shell scripts typically begin with. It appears to me that Qshell doesn’t care whether you include the comment. Is that true? If so, is there a reason why I should include the magic number?

    –Jim

    It’s true. Take a look at the process Qshell goes through to execute a script.

    When you type a script name and press Enter, Qshell starts a new job and asks the system to run the script. The system reads the first line of the script to see whether it contains the magic number. If the system finds the magic number, it loads the executable file named in the magic number, passing the name of the script to the executable file in the first positional parameter. Suppose the first line of script file Example, located in directory /home, contains the following magic number.

    #! /usr/bin/qsh
    

    The system runs the following command:

    /usr/bin/qsh /home/Example
    

    The result is that the system loads Qshell and runs the script, which is what you wanted.

    Now suppose that the magic number is omitted. The system reads the first line of the script but does not find a magic number. In this case, the system invokes Qshell anyway, passing it the script file name in the first parameter. Qshell attempts to run the script.

    This brings us back to your question. If Qshell ends up running the script anyway, why should you include the magic number? In your situation, it may not matter. I can think of a couple of reasons why it’s a good idea to use the magic number.

    First, the magic number leaves no doubt that the script was written for Qshell. Scripts written for PASE shells can run a Qshell script simply by executing the Qshell script file name.

    Second, whatever your feelings for Unix and Linux are, the fact is that use of these operating systems is growing in iSeries shops. Chances are good you’ll have to work with either or both of them, and you will need to include the magic number in scripts written for those environments. Why not adopt the practice now?

    –Ted

    Share this:

    • Share on Reddit (Opens in new window) Reddit
    • Share on Facebook (Opens in new window) Facebook
    • Share on LinkedIn (Opens in new window) LinkedIn
    • Share on X (Opens in new window) X
    • Email a link to a friend (Opens in new window) Email

    Tags:

    Sponsored by
    JAMS Software

    One Scheduler. IBM i, Windows, Linux, and More.

    IBM i teams trust JAMS to schedule and orchestrate jobs across every platform in their environment. Centralized visibility, cross-platform dependency management, and alerts that reach the right person before the business feels it.

    Fewer than 5% of IBM i shops run IBM i only. The rest are managing cross-platform dependencies — often without a clear picture of how they connect. JAMS draws that map, enforces those dependencies automatically, and gives your team a single place to monitor, manage, and recover when something goes wrong.

    If you are running hundreds of CL scripts and custom RPG processes, bring them as-is. JAMS runs them exactly as they do today — except now they are visible, monitored, and part of an orchestrated workflow instead of scattered across folders only one person knows about.

    No consumption-based pricing. No surprise bills when your workload spikes. You pay based on how many machines JAMS talks to — that’s it.

    Learn More → https://jamsscheduler.com/lp/ibm-i

    Share this:

    • Share on Reddit (Opens in new window) Reddit
    • Share on Facebook (Opens in new window) Facebook
    • Share on LinkedIn (Opens in new window) LinkedIn
    • Share on X (Opens in new window) X
    • Email a link to a friend (Opens in new window) Email

    Using ‘New’ SQL Data Types in RPG Admin Alert: The Absolute Coolness of the QNTC File System

    Leave a ReplyCancel reply

Content archive

  • The Four Hundred
  • Four Hundred Stuff
  • Four Hundred Guru

Recent Posts

  • Big Blue Ships Bob 2.0 And Premium Package For IBM i
  • Your IBM i Jobs Don’t Live On An Island Anymore
  • FalconStor Creates Cloud Clean Room To Prove Backup Recoveries Work
  • Talking Git On IBM i With A Bunch Of IBM i Gits
  • IBM i PTF Guide, Volume 28, Number 22
  • More Power Systems Price Hikes, This Time They Are “Directional”
  • AI Is Not Just For Developers, It Is For Everyone At Your Company
  • Guru: Finding Data In The Forest – Exploring Three-Part Naming In SQL
  • Former IBMer’s New Book Puts The Midrange In The Spotlight
  • Have You Tried To Buy A Server Lately?

Subscribe

To get news from IT Jungle sent to your inbox every week, subscribe to our newsletter.

Pages

  • About Us
  • Contact
  • Contributors
  • Four Hundred Monitor
  • IBM i PTF Guide
  • Media Kit
  • Subscribe

Search

Copyright © 2025 IT Jungle