bitburner-src/doc/source/netscript/netscriptscriptarguments.rst

59 lines
1.7 KiB
ReStructuredText
Raw Normal View History

2018-12-04 02:20:58 +01:00
.. _netscript_script_arguments:
Netscript Script Arguments
==========================
Arguments passed into a script can be accessed in Netscript using a
special array called ``args``. The arguments can be accessed using a
normal array using the ``[]`` operator (``args[0]``, ``args[1]``, etc...).
These arguments can be string, number, or boolean.
2018-12-04 02:20:58 +01:00
For example, let's say we want to make a generic script
``generic-run.script`` and we plan to pass two arguments into that script.
2018-12-04 02:20:58 +01:00
The first argument will be the name of another script, and the second
argument will be a number. This generic script will run the
script specified in the first argument with the amount of threads
2023-01-07 10:03:43 +01:00
specified in the second argument. The code would look like:
2018-12-04 02:20:58 +01:00
2023-01-07 10:03:43 +01:00
.. code:: javascript
2023-01-06 13:43:09 +01:00
var fileName = args[0];
var threads = args[1];
run(fileName, threads);
2018-12-04 02:20:58 +01:00
And it could be ran from the terminal like:
2018-12-04 02:20:58 +01:00
``run generic-run.script myscript.script 7``
2018-12-04 02:20:58 +01:00
2023-01-07 10:03:43 +01:00
In .js / ns2, the above script would look like:
2023-01-06 13:43:09 +01:00
.. code:: javascript
2023-01-07 10:03:43 +01:00
export async function main(ns) {
let fileName = ns.args[0];
let threads = ns.args[1];
ns.run(fileName, threads);
2023-01-07 10:03:43 +01:00
}
It is also possible to get the number of arguments that were passed
into a script using ``args.length``.
If we want to make a script like ``foo.js`` that gets 2 arguments: a string to print
and a number of time to print that string, the code could look like:
.. code:: javascript
export async function main(ns) {
for (let i=0; i<ns.args[1];i++){
ns.tprint(ns.args[0])
}
}
Then we can have another script launch ``foo.js`` with the 2 arguments like:
.. code:: javascript
export async function main(ns) {
ns.exec("foo.js","n00dles",1,"this will be printed twice", 2)
}