1 Şubat 2016 Pazartesi

Komut Satırı Parse Etme

Giriş
Verilen parametreleri parse() etmek işlemi run-time tarafından yapılır. Anlamlandırma işlemi ise uygulama tarafından gerçekleştirilir. Konuyla ilgili olarak Main metodu başlıklı yazıya bakabilirsiniz.

Komut Satırında Boşluklar
Komut satırındaki boşluklar her bir kelimenin ayrı ayrı algılanmasını sağlar. Arasında boşluk olan kelimeleri tek bir komut gibi kullanmak için tırnak içine almak gerekir. Örnek:
java -jar MyThing.jar "My File Name with loads of spaces.jpg"

C
Komut Satırı Parse Etme yazısına taşıdım.
C++
Komut Satırı Parse Etme yazısına taşıdım.

GNU

getopt
getopt yazısına taşıdım.

getoptlong
getoptlong yazısına taşıdım.

Apache Commons
CommandLineParser arayüzünden türeyen sınıflar bir CommandLine sınıfı üretiyorlar.
BasicParser sınıfı
Örnek:
CommandLine cmd;
CommandLineParser parser = new BasicParser();
cmd = parser.parse(options, args);
if (cmd.hasOption("c")){
String[] customerIdArray = cmd.getOptionValues("c");
// Code to parse data into int
}
GnuParser sınıfı
Bir örnek burada.
Bu sınıf kullanımdan kalktı. DefaultParser'ın kullanılması gerekir

PosixParser sınıfı
Bu sınıf kullanımdan kalktı. DefaultParser'ın kullanılması gerekir.

DefaultParser  sınıfı
DefaultParser yazısına taşıdm. 

CommandLine sınıfı
Her okuma işlemi sonucunda bu sınıf üretilir.
getArgs
Parse edilen parametreleri String[] şeklinde alabilmemizi sağlar. Örnek:
for(String arg : commandline.getArgs()){...}
boost
boost program_options yazısına taşıdım.QT

QCoreApplication parse işlemini biraz daha kolaylaştırıyor.

int main (int argc, char* argv[])
{

    QCoreApplication app(argc, argv);
    QStringList arglist = app.arguments();
}


Bash
$# ile toplan parametre sayısı alınır. $0, $1 belirtilen konumdaki parametre alınır.

Örnek:
./command -yes -no /home/username
so now..
$# = 3
$* = -yes -no /home/username
$@ = ("-yes" "-no" "/home/username")
$0 = ./command
$1 = -yes
$2 = -no
$3 = /home/username



Hiç yorum yok:

Yorum Gönder