Gauche > Archives > 2013/03/15

2013/03/15 10:30:20 UTCyamasushi
#
(use gauche.parseopt)
(define (main args)
  (let-args (cdr args)
      [ [format-str "fmt=s" #f]
       . args]
       (format #t format-str (car args) )
) )

;$ gosh t -fmt "~a\n" kaigyo
;kaigyo\n
(改行することを期待しているが\nという文字列が出力される。)
#
文字列オプションで\nを渡すとそのまま文字列になってしまい、改行にならないのですが、指定の方法があるのでしょうか?
2013/03/15 10:36:55 UTC齊藤
#
その文字列リテラルを解釈するのがシェルであって gosh ではないからですね。
2013/03/15 10:41:22 UTC齊藤
#
改行に関して言うならそのまま改行を与えれば良いはずです。
#
$ gosh ./test1.scm -fmt "~a
> " kaigyo
kaigyo
2013/03/15 10:46:48 UTCyamasushi
#
すみません。シェルのことをよく知らないのです。(汗 そのまま与えるという魔法はどのようにするのでしょうか?
2013/03/15 10:51:50 UTC齊藤
#
クォートで始まってる途中は普通にエンターキーで改行を入力できます。 特別なことは何もないですよ。
2013/03/15 10:54:04 UTCkazh98
#
format 関数に渡すフォーマット文字列format-str なら~% と記述すれば改行できると思いますけど。。
2013/03/15 10:54:08 UTCyamasushi
#
あ、うまくいきました。
2013/03/15 10:54:42 UTC齊藤
#
それもひとつの手ですね。 < ~%
2013/03/15 10:55:06 UTCyamasushi
#
おお、知らなかったです・・・・なるほど。ありがとうございます。