1
下面是一個程序示例,該程序採用一個可選參數a
,該參數的默認值爲換行符。該程序僅打印唯一參數的值。因此,在調用程序不帶參數或-a '\n'
應該給予相同的值,但它並不:使用optparse-appative從命令行參數中讀取換行符
$ ./myProg
$ ./myProg -a '\n'
\n
的問題是,當它的命令行參數讀取,換行字符轉義。是否有可能使這兩個調用行爲相同?
import Options.Applicative
data Options = Options String
optsParser :: Parser Options
optsParser = Options
<$> strOption
(short 'a'
<> metavar "A"
<> value "\n")
opts :: IO Options
opts = execParser $ info (helper <*> optsParser) (fullDesc)
main = do
Options a <- opts
putStrLn $ a
很好的說明。有沒有簡單的方法讓optparse將命令行參數給出的「\ n」解釋爲換行符? –
@GuillaumeChérel你必須自己做,並實現自己的轉義語法。 – melpomene