2011-11-01 39 views
6

Tôi muốn viết các kịch bản dòng lệnh trong Mathematica, nhưng dường như tôi không thể tìm thấy một hàm giống như Argv[i_Integer]. (Các tài liệu là FANTASTIC khác.)Làm thế nào để bạn truy cập ARGV trong Mathematica?

+2

câu hỏi tương tự: [? Nếu làm “foo bar math”, làm thế nào để có được foo và bar bên Mathematica] (http: // stackoverflow.com/q/7149252/211232) – WReach

Trả lời

4

$CommandLine công trình cho Mathematica, MathematicaScript, MathKernel, và toán.

args.ma:

#!/usr/bin/env MathKernel -script 

Print[$CommandLine] 

Ví dụ:

$ ./args.ma a b c 
{"MathKernel", "-script", "./args.ma", "a", "b", "c"} 
6

Dường như $ScriptCommandLine là biến bạn sẽ cần cho điều này, giả sử bạn đang sử dụng MathematicaScript cho kịch bản. Nếu bạn sử dụng math hoặc MathKernel -script, nó sẽ là $CommandLine.

Các cuộc thảo luận có liên quan khác: rather old one và một trong MMA toolbag.

+0

Cảm ơn. Thật không may, 'MathKernel' báo cáo' $ ScriptCommandLine' là trống '{}', bất kể các đối số thực tế được cung cấp. Và 'MathematicaScript' báo cáo' Không thể tìm thấy thư mục cài đặt Mathematica.' – mcandre

+0

@mcandre Có phải các tệp thi hành trên đường dẫn của bạn không? –

+0

@mcandre .... và bạn có thấy dòng này trong tài liệu không: "Dòng đầu tiên của tập lệnh phải chứa tùy chọn -script, phải là tùy chọn ** cuối cùng ** trên dòng." –

Các vấn đề liên quan