2017-04-19 94 views
1

我想知道如何在使用ErLang時將參數傳遞到shell腳本中?我知道我可以使用os:cmd()來執行shell腳本,但是我發現我不能將參數傳遞給這個命令。如何將參數傳遞到erlang os:cmd()?

例如,我有一個參數L = 2,我希望我的shell腳本使用這個參數,所以erlang命令應該是os:cmd("bash echo.sh L")。然而,輸出是L,但我想要得到2。誰能幫我?

回答

4

功能io_lib:格式/ 2,您可以準備一個字符串,然後把它傳遞給操作系統:命令/ 1:

S = io_lib:format("bash echo.sh ~p",[L]), 
os:cmd(S), 

S是一個嵌套列表,我不記得是否被接受通過os:cmd/1,如果不是你將有扁平化的結果os:cmd(lists:flatten(S))

+0

'操作系統:cmd'接受原子和深厚的名單,但不是二進制文件。 – legoscia