コマンドライン引数を(特に違いがあればGNUで)得る方法は?Common Lisp?Common Lispでコマンドライン引数を取得する
答えて
私はあなたがCLispでスクリプトを作成していると仮定しています。あなたはCLISPやGCLについて話していることが
$ ./<filename>
NIL
$ ./<filename> a b c
("a" "b" "c")
$ ./<filename> "a b c" 1 2 3
("a b c" "1" "2" "3")
http://cl-cookbook.sourceforge.net/os.htmlは、いくつかの洞察
(defun my-command-line()
(or
#+CLISP *args*
#+SBCL *posix-argv*
#+LISPWORKS system:*line-arguments-list*
#+CMU extensions:*command-line-words*
nil))
は、あなたが探しているものです提供し、私は思います。
(またはFOO nil)はFOOと同等ですが、そうではありませんか? –
はい、あなたのFOOを条件付きで読むと、おそらく、フォールバックを持つのがよいでしょう。しかし、(あるいは)の価値は、まったく驚くべきことではない(NILの価値がTと同じように)。 – Vatine
を与えて実行
$ chmod 755 <filename>
を実行して、それが実行してください
#! /usr/local/bin/clisp
(format t "~&~S~&" *args*)
を含むファイルを作成することができますか? GCLのように、コマンドライン引数はsi::*command-args*
に渡されます。
SBCLでは、sb-ext:* posix-argv *を使用して、共通のlispスクリプトからargvを取得できます。 sb-ext:* posix-argv *はすべての引数を保持するリストで、最初のargはスクリプトfilnameです。
これはもううまくいきません。 "シンボル" POSIX-ARGV "がSB-EXTパッケージに見つかりません。 ' – Langston
はsb-ext:* posix-argv *でなければなりません。古いテキストでは、スタイルとして働く\ * something \ *です。 –
https://stackoverflow.com/a/1021843/31615のように、各実装には独自のメカニズムがあります。これを処理する通常の方法は、統一されたインターフェースを提供するラッパー・ライブラリーを使用することです。
このようなライブラリは、物を読むだけでなく、それらを変換して、有用な出力をユーザに与えるさらなる支援を提供することができる。完全なパッケージはCLON(CLONまたはCLONと混同しないでください)、Command Line Options Nukerです。しかし、あなたのニーズがより軽い場合は、例えばcommand-line-argumentsとapply-argvのようなものがあります。
これらのquicklispのパッケージは、それぞれnet.didierverna.clon
,command-line-arguments
、およびapply-argv
という名前です。
- 1. Common Lispでコマンドライン引数とフラグを移植可能に解析するには?
- 2. Common Lisp let関数
- 3. Common Lisp Unbound変数
- 4. Common Lispでビットベクトルからストリームを取得する方法は?
- 5. Common Lispの "functorの不正な引数"とは何ですか?
- 6. common lisp - ファイルへのパスを取得する
- 7. Common Lisp:文字のUnicode名を取得する
- 8. Common Lispで二重引用符をエスケープする
- 9. Common Lisp Memory Issues
- 10. Common Lisp用ベクターグラフィックスライブラリ
- 11. ステップEval Common Lisp
- 12. Common Lispのクラスイントロスペクション
- 13. Common Lispでの整数除算
- 14. Common Lisp:バックグラウンドでの関数の実行
- 15. Common Lispで&restパラメータを展開する
- 16. Common Lispでシンボルテーブルをシミュレートする方法
- 17. Common Lispでリーダーマクロを管理する
- 18. Common Lispで型を削除する
- 19. Common Lispでデータを圧縮するストリームインターフェイス
- 20. common lisp function/macro aliases
- 21. Common Lispラムダ式エラー
- 22. Common Lisp vs. MacLisp/InterLisp
- 23. Common Lisp並列プログラミング
- 24. Common Lispグラフィカルユーザインタフェース開発
- 25. Common Lispでの循環リスト
- 26. Common Lispでファイルサイズ(および他の属性)を取得する方法は?
- 27. ソースコードlisp(Common Lisp、Scheme、Clojure)の美人
- 28. Common Lispの効率的なcollect関数
- 29. Common Lisp EVAL関数の見積もり
- 30. WPFアプリケーションでコマンドライン引数を取得する方法は?
この投稿のリンクはもはや実行可能ではありません。 :( – masukomi
これは超クールですが、私はどのように文字列からデータを作ることができますか?私の関数はこのような入力(一意の(abccdddef))に使用され、文字列では機能しません: # 'make-symbol * args *)しかし、それは仕事をしていないようです –