![](/img/trans.png)
[英]How can I pass arguments in the terminal command line using Javascript?
[英]PureScript - Pass arguments to main using the command line
PureScript 程序導出一個main function,它在您運行程序時被調用。 但不清楚如何將 arguments 傳遞給它,或者是否可能。
考慮以下將字符串大寫的簡單程序。
module Main where
import Effect (Effect)
import Effect.Console (log)
import Prelude (Unit, discard)
import Data.String (toUpper)
message :: String
message = "Satisfaction Rating: 8.23"
main ∷ Effect Unit
main = do
log ( toUpper ( message ) )
哪些輸出
SATISFACTION RATING: 8.23
該程序在調用spago run
時執行。
我的問題如下:代碼示例中的參數message
如何通過命令行傳入,創建自定義消息大寫字母?
更新后的運行命令類似於:
spago run --message="new_message"
更新后的 output 看起來像
NEW_MESSAGE
簡而言之,如何從外部將值傳遞給 PureScript 程序?
當您使用spago run
執行 PureScript 程序時,它會在 Node 下運行。 因此,要獲取命令行 arguments,您需要作為 Node.
看看:有一個用於相關 Node 設施的 PureScript 綁定 - 來自purescript-node-process
的argv
function 。 這是一個返回 arguments 數組的效果:
import Node.Process (argv)
main = do
args <- argv
log $ show args
快速檢查spago run --help
表明可以通過-b
參數將 arguments 傳遞給程序:
spago run -b somearg
對於多個 arguments,引用它們:
spago run -b "somearg anotherarg"
請注意,這適用於 Linux(並且可能是 macOS),但在 Windows 上失敗,其中 Spago 出於某種原因忽略引號並嘗試將anotherarg
解釋為它自己的參數。 這顯然是一個錯誤。 這個問題似乎相關。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.