Command-line argument parsingDifferent command-line argument parsing methods are used by different programming languages to parse command-line arguments. Programming languagesCC uses An example of C argument parsing would be: #include <stdio.h>
int main (int argc, char *argv[])
{
int count;
for (count = 0; count < argc; count++)
puts (argv[count]);
}
C also has functions called getopt and getopt_long. C#An example of C# argument parsing would be: class Program
{
static void Main(string[] args)
{
foreach (var arg in args)
Console.WriteLine(arg);
}
}
JavaAn example of Java argument parsing would be: public class Echo {
public static void main (String[] args) {
for (String s: args) {
System.out.println(s);
}
}
}
KotlinHere are some possible ways to print arguments in Kotlin:[3] fun main(args: Array<String>) = println(args.joinToString())
fun main(args: Array<String>) = println(args.contentToString())
fun main(args: Array<String>) {
for (arg in args)
println(arg)
}
PerlPerl uses foreach $arg (@ARGV)
{
print $arg;
}
or foreach $argnum (0 .. $#ARGV)
{
print $ARGV[$argnum];
}
AWKAWK uses BEGIN {
for ( i = 0; i < ARGC; i++ )
{
print ARGV[i]
}
}
PHPPHP uses $args = parseArgs($argv);
echo getArg($args, "foo");
function parseArgs(array $args)
{
foreach ($args as $arg) {
$tmp = explode(":", $arg, 2);
if ($arg[0] === "-") {
$args[substr($tmp[0], 1)] = $tmp[1];
}
}
return $args;
}
function getArg(array $args, string $arg)
{
if (isset($args[$arg])) {
return $args[$arg];
}
return false;
}
PHP can also use PythonPython uses import sys
for arg in sys.argv:
print arg
Python also has a module called RacketRacket uses a #lang racket
(require racket/cmdline)
(define smile? (make-parameter #t))
(define nose? (make-parameter #false))
(define eyes (make-parameter ":"))
(command-line #:program "emoticon"
#:once-any ; the following two are mutually exclusive
[("-s" "--smile") "smile mode" (smile? #true)]
[("-f" "--frown") "frown mode" (smile? #false)]
#:once-each
[("-n" "--nose") "add a nose" (nose? #true)]
[("-e" "--eyes") char "use <char> for the eyes" (eyes char)])
(printf "~a~a~a\n"
(eyes)
(if (nose?) "-" "")
(if (smile?) ")" "("))
The library parses long and short flags, handles arguments, allows combining short flags, and handles $ racket /tmp/c -nfe 8
8-(
RexxRexx uses do i=1 to words(arg(1))
say word(arg(1), i)
end
RustThe args are in use std::env;
fn main() {
let args: Vec<String> = env::args().collect();
let query = &args[1];
let file_path = &args[2];
println!("Searching for {}", query);
println!("In file {}", file_path);
}
JavaScriptNode.jsJavaScript programs written for Node.js use the // argv.js
console.log(process.argv);
$ node argv.js one two three four five
[ 'node',
'/home/avian/argvdemo/argv.js',
'one',
'two',
'three',
'four',
'five' ]
Node.js programs are invoked by running the interpreter node interpreter with a given file, so the first two arguments will be // process-args.js
console.log(process.argv.slice(2));
$ node process-args.js one two=three four
[
'one',
'two=three',
'four' ]
BunJavaScript written for Bun use console.log(Bun.argv);
DenoJavaScript written for Deno use console.log(Deno.args);
References
|
Portal di Ensiklopedia Dunia