You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Introduction

JS7 offers a number of JS7 - Job Types including JS7 - Java JobsJS7 - JavaScript Jobs and Shell Jobs.

  • Shell Jobs are started from an OS process by the JS7 Agent
  • Any number of instances of a Shell Job can be executed in parallel.

JS7 - Job Environment Variables are available to Shell Jobs.

Using Script Languages

Shell jobs execute job scripts in any scripting language available from the OS.

Unix

Running Shell Scripts

Shell scripts can be written in any Shell available from the OS such as bash, ksh, zsh, dash etc. It is recommended to add a shebang to the first line of the script that indicates the Shell to be used:

Example how to invoke a Shell to run script code
#!/bin/bash

# alternative use for bash
#!/usr/bin/env bash

# frequently used shebangs
#!/bin/sh
#!/bin/ksh
#!/bin/zsh
#!/bin/dash

Running PowerShell Scripts

In order to directly run PowerShell® script code from a JS7 shell job script the recommended approach is to use a shebang like this:

Example how run PowerShell® script code with a shebang
#!/usr/bin/env pwsh
 
Write-Output "Hello"
Write-Output "world"


In addition, a PowerShell® script can be executed from a file that is in reach of the JS( Agent:

Example how to run PowerShell® script code from a file
pwsh -NoLogo -NonInteractive -File some_powershell_script.ps1

Running Python Scripts

In order to directly run Python® script code from a JS7 shell job script the recommended approach is to use a shebang replacement like this:

Example how use Python script code with a shebang
#!/usr/bin/python
 
print("Hello")
print("world")


Alternatively a Python® script can be executed from a file that has to be located in reach of the JS7 Agent:

Example how to run Python script code from a file
#!/usr/bin/bash

python hello.py

Running Node.js JavaScript

In order to directly run Node.js® script code from a JS7 shell job script, the recommended approach is to use a shebang that runs Node.js® as the interpreter of the script like this:

Example how run Node.js® script code with a shebang
#!/usr/bin/node

var name = (process.env.name);
var num = parseInt(process.env.num);

console.log(name);
console.log(num);


Alternatively, a Node.js® script can be executed from a file that is located within reach of the JS7 Agent that runs the job:

Example how to run Node.js® script from a file
node  /some/location/sample_Node.js

Windows

Running Shell Scripts

Any commands available from the Windows Shell can be used in a job script like this:

Example how run Shell script code
@echo off

echo hello world
hostname


This includes to call .bat and .cmd command files like this:

Example how run Shell script code
@echo off

call C:\Documents\hello.bat
call C:\Documents\world.cmd

Running PowerShell Scripts

In order to directly run PowerShell® script code from a JS7 shell job script the recommended approach is to use a shebang replacement like this:

Example how run PowerShell® script code with a shebang replacement
@@findstr/v "^@@f.*&" "%~f0"|powershell.exe -&goto:eof

Write-Output "Hello" 
Write-Output "world" 


Note: PowerShell 5.1 frequently ships with the OS and makes use of powershell.exe. Later PowerShell releases use the pwsh.exe binary.

In addition, a PowerShell® script can be executed from a file that is located in reach of the JS7 Agent:

Example how to run PowerShell® script code from a file
powershell.exe -NoLogo -NonInteractive -File some_powershell_script.ps1

Running Python Scripts

Python can be invoked to execute script code like this:

Example how use Python script code with a shebang
@@findstr/v "^@@f.*&" "%~f0"|python.exe -&goto:eof

print("Hello")
print("world")


Alternatively a Python® script can be executed from a file that has to be located in reach of the JS7 Agent:

Example how to run Python® script code from a single line
python.exe hello.py

Running Node.js JavaScript

In order to directly run Node.js® script code from a JS7 shell job script, the recommended approach is to use a shebang that runs Node.js® as the interpreter of the script like this:

Example how run Node.js® script code with a shebang replacement
@@findstr/v "^@@f.*&" "%~f0"|node.exe -&goto:eof

var name = (process.env.name);
var num = parseInt(process.env.num);

console.log(name);
console.log(num);


Explanation
:

  • If you consider this shebang replacement somewhat cryptic then add it to JS7 - Script Includes which are easily referenced from shell jobs, e.g. by using
    ::!include <name-of-script-include>
  • The node.exe executable as available from the Node.js® installation is executed by the shebang.

In addition, a Node.js® script can be executed from a file located with the JS7 Agent that implements the job:

Example how to run Node.js® script from a file
node.exe C:\Users\Documents\sample_Node.js

Accessing Arguments


Passing Variables


Further Resources

How To

How To ... Shell Jobs

How To ... Shell API



  • No labels