मैं टर्मिनल में स्विफ्ट का उपयोग कैसे कर सकता हूं?


108

मैंने पढ़ा कि Xcode 6 में नया क्या है । लेख Xcode 6 के बारे में कुछ नई सुविधा पेश करता है, और यह कहता है:

कमांड लाइन

Xcode के डीबगर में स्विफ्ट भाषा का एक इंटरैक्टिव संस्करण शामिल है, जिसे REPL (रीड-एवल-प्रिंट-लूप) के रूप में जाना जाता है। अपने रनिंग ऐप के साथ मूल्यांकन करने और बातचीत करने या स्क्रिप्ट जैसे वातावरण में नया कोड लिखने के लिए स्विफ्ट सिंटैक्स का उपयोग करें। REPL Xcode के कंसोल में, या टर्मिनल से LLDB के भीतर उपलब्ध है।

मैं जानना चाहता हूं कि आरईपीएल कैसे प्राप्त करें?


3
यहाँ एक लेख मैंने लिखा है, इस बारे में। medium.com/swift-programming/…
संतोष

आप चाहे तो इसे ऑनलाइन भी इस्तेमाल कर सकते हैं, जब आप repl.it/languages/swift
Amjad Masad

जवाबों:


135
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

तो आप इनमें से एक कर सकते हैं:

xcrun swift 
lldb --repl

Xcode 6.1 के रूप में - swiftटर्मिनल में टाइप करने के साथ ही REPL को भी लॉन्च किया जाता है।


2
... और छोड़ने के लिए Ctrl+ टाइप करें d
arve0

57

वैकल्पिक रूप से, यदि आप अपने वर्तमान देव वातावरण को गड़बड़ाना नहीं चाहते हैं, तो आप बस चला सकते हैं:

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift

30
या, आप इसे एक कदम भी आगे ले जा सकते हैं और इसे अपने में जोड़ सकते हैं ~/.bash_profile:alias swift="/Applications/Xcode6-Beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift"
डेविड बेक

6
OS X SDK का उपयोग करने में सक्षम होने के लिए आपको इसके लिए रास्ता भी /Applications/Xcode6-Beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -sdk /Applications/Xcode6-Beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk
बताना होगा

विचार डेविड के लिए धन्यवाद। मैंने उस प्रोफ़ाइल में जोड़ा, लेकिन मुझे ऐसी कोई फ़ाइल या निर्देशिका प्राप्त नहीं होती है, भले ही वह वहीं हो, और अनुमतियाँ हैं -rwxr-xr-x@ 1 mark2 admin 33557440 31 May 14:43 swift। मैं यूनिट में उतना मजबूत नहीं हूं। क्या कोई देख सकता है कि क्या गलत है?
MarkAurelius

xcrun --find swiftपथ प्राप्त करने के लिए भविष्य के प्रमाण का उपयोग करने जा रहा है
माइक वेलर

1
xcrun --toolchain com.apple.dt.toolchain.Swift_2_3 swiftरास्ता ज्यादा बेहतर है। मूल उत्तर यहां: stackoverflow.com/a/36254848/5768974
पुतिन

42

चरण 1: ओपन टर्मिनल
चरण 2: टाइप "स्विफ्ट"
चरण 3: कोई चरण 3 नहीं है

उदाहरण:

GoldCoast:~ macmark$ swift
Welcome to Swift!  Type :help for assistance.
  1> println("Hello, world")
Hello, world
  2> var myVariable = 42
myVariable: Int = 42
  3> myVariable = 50
  4> let myConstant = 42
myConstant: Int = 42
  5> println(myVariable)
50
  6> let label = "The width is "
label: String = "The width is "
  7> let width = 94
width: Int = 94
  8> let widthLabel = label + String(width)
widthLabel: String = "The width is 94"
  9> :exit

GoldCoast:~ macmark$ 

यद्यपि आप xcrun swiftस्विफ्ट 2.1 से आगे भी उपयोग करना जारी रख सकते हैं , आप केवल swiftकमांड-लाइन से चला सकते हैं ।
टिम्बो

मेरा उदाहरण जुलाई 2014 में स्विफ्ट 1.0 से है। यह मेरे लिए तब से xcrun के बिना काम कर रहा था।
मैकमार्क

15

टर्मिनल से स्विफ्ट चलाने के रूप में भी, आप स्क्रिप्ट निष्पादित कर सकते हैं। बस निम्नलिखित शेबंग का उपयोग करें, और अपनी स्क्रिप्ट चलाएं। ( स्विफ्ट के निर्माता क्रिस लैटनर के अनुसार )

#!/usr/bin/env xcrun swift -i

6
XCode 6 बीटा 5 के अनुसार -iध्वज को हटा दिया गया है और एक त्रुटि होगी। बस इसे जाने दो और #!/usr/bin/env xcrun swiftइसके बजाय उपयोग करें ।
जेहुत

जो कोई भी Xcode 8 में Swift 2.3 के साथ खेलना चाहता है, उसे stackoverflow.com/a/36254848/1298043
Puttin

15

Xcode 6.1.1 कमांड लाइन टूल के साथ स्थापित किया गया है जिसे आप सीधे /usr/bin/swiftनिम्नलिखित तरीके से संदर्भित करके स्क्रिप्ट निष्पादित कर सकते हैं :

#!/usr/bin/swift

let variable: String = "string"
print("Test \(variable)")

इसकी पुष्टि तेजी से 2.1.1 (xcode 7.2 install) के साथ काम करने की पुष्टि करें
thibaut noah

1
जो कोई भी Xcode 8 में Swift 2.3 के साथ खेलना चाहता है, उसे stackoverflow.com/a/36254848/1298043
Puttin

10

अगर किसी को भी एक साधारण स्विफ्ट स्क्रिप्ट की परवाह है:

#!/usr/bin/env xcrun --sdk macosx swift

यदि विशिष्ट लक्ष्य संस्करण की आवश्यकता है

#!/usr/bin/env xcrun --sdk macosx swift -target x86_64-macosx10.11

यदि विशिष्ट टूलकिन आवश्यक है (जैसे आप स्विफ्ट 2.3 का उपयोग करना चाहते हैं लेकिन आप Xcode 8 का उपयोग कर रहे हैं)

#!/usr/bin/env xcrun --toolchain com.apple.dt.toolchain.Swift_2_3 --sdk macosx swift -target x86_64-macosx10.11

यदि आप अपने Xcode 7.3.1 में Swift 2.2 का उपयोग करना चाहते हैं, तो मान लें कि Xcode 7.3.1 स्थित है /Applications/Xcode7.app

sudo xcode-select -s /Applications/Xcode7.app/
xcrun --sdk macosx swift

अब से डिफ़ॉल्ट सक्रिय डेवलपर निर्देशिका बदल गई है, आप इसका उपयोग करके देख सकते हैं:

xcode-select -p

यदि आप Swift.org द्वारा उपलब्ध कराए गए स्नैपशॉट का उपयोग करना चाहते हैं , तो आपको यहां इंस्टॉलेशन नहीं छोड़ना चाहिए ।


जैसा कि पहले मेरे द्वारा निर्मित चरण के रूप में Xcode iOS प्रोजेक्ट से रन स्विफ्ट स्क्रिप्ट में उत्तर दिया गया था


8

** xcode6 बीटा 4 के रूप में अद्यतन **

यह xcode वरीयताओं पर भी किया जा सकता है। बस xcode पर जाएँ -> प्राथमिकताएँ -> स्थान।

कमांड लाइन टूल के लिए बस ड्रॉप डाउन सूची विकल्पों से इच्छित संस्करण का चयन करें, नीचे चित्र देखें। (स्विफ्ट के लिए xcode6 का पथ होना आवश्यक है)।

कमांड लाइन उपकरण स्क्रीन

मैं अपना पिछला उत्तर नीचे भी छोड़ दूंगा।


काण ने क्या कहा और आप साधारण एप्लिकेशन बनाने के लिए एक ऐप्पल स्क्रिप्ट का भी उपयोग कर सकते हैं ताकि आप इसे आगे और पीछे स्विच करने के लिए उपयोग कर सकें।

Apple स्क्रिप्ट खोलें> इसे नीचे दिए गए कोड को पेस्ट करें और इसे एक एप्लिकेशन के रूप में निर्यात करें ताकि केवल एक क्लिक से आप डिफ़ॉल्ट पथ या बीटा पथ (उपयोग करने के लिए) पर स्विच कर सकें

set xcode6Path to "xcode-select -switch /Applications/Xcode6-Beta.app/Contents/Developer"
set xcodeDefaultPath to "xcode-select -switch /Applications/Xcode.app/Contents/Developer"

display dialog "set xcode sdk path to " buttons {"xcode 6", "default"} default button 1
copy result as list to {buttonPressed}
if buttonPressed is "default" then
    try
        do shell script xcodeDefaultPath with administrator privileges
    end try
else
    try
        do shell script xcode6Path with administrator privileges
    end try
end if

फिर दौड़> xcrun swift

अस्वीकरण

  1. स्क्रिप्ट मानती है कि आपके पास xcode6-beta और xcode5 दोनों हैं।
  2. यदि आप एक नए डेवलपर हैं, जो केवल xcode6beta की कोशिश कर रहे हैं, तो आपको मैन्युअल रूप से किसी स्क्रिप्ट या सेटिंग पथ की आवश्यकता नहीं होगी। बस चलाएं xcrun swiftक्योंकि आपके लिए पहले से ही रास्ता तय है।
  3. जब xcode6 अंतिम रूप से रिलीज़ हो जाता है, तो आपको इस सरल ऐप से डिफ़ॉल्ट रूप से अपना पथ रीसेट करने की आवश्यकता होगी और इसे फिर कभी उपयोग न करें।

मैंने XCode 5 को स्थापित किया था और अब XCode को "अपडेट" (= प्रतिस्थापित) कर दिया है। क्या अब 5.x को वापस लाने का कोई तरीका है? इस समाधान के साथ?
मथियास मैक्स

आपका क्या मतलब है 5.x को वापस लाएं। xcode6 GM या appstore रिलीज़ xcode5 की जगह लेगा।
nsuinteger

6

आधिकारिक Xcode 6.1 रिलीज को स्थापित करने के बाद, इसमें एक swiftकमांड है /usr/bin/swift

इस बात को ध्यान में रखें कि यदि आपके पास रास्ते में एप्पल द्वारा प्रदत्त अजगर से अलग है, तो swiftआप असफल हो सकते हैं ImportError: No module named site। उस स्थिति में, सुनिश्चित करें कि आप export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbinकॉल करने से पहले करते हैं swift


5

Xcrun कमांड वर्तमान में चयनित Xcode इंस्टॉलेशन (जैसा कि xcode-select के साथ सेट होता है) को ओवरराइड करने के लिए DEVELOPER_DIR पर्यावरण चर का उपयोग करेगा। आप उस एक कमांड का निर्माण करने के लिए उपयोग कर सकते हैं जो कमांड लाइन पर तेजी से चलेगी और आपको REPL में डाल देगी। यह इस तरह दिखता है:

/usr/bin/env DEVELOPER_DIR=/Applications/Xcode6-Beta.app/Contents/Developer xcrun swift 

और आप इसे केवल 'स्विफ्ट' करने के लिए कह सकते हैं:

alias swift="/usr/bin/env DEVELOPER_DIR=/Applications/Xcode6-Beta.app/Contents/Developer xcrun swift"

एक दिलचस्प पक्ष के रूप में, आप एक स्विफ्ट स्क्रिप्ट को चलाने के लिए उसी तरह के आह्वान का उपयोग कर सकते हैं, जैसे आप -i जोड़कर बैश या अजगर का उपयोग करेंगे:

#!/usr/bin/env DEVELOPER_DIR=/Applications/Xcode6-Beta.app/Contents/Developer xcrun swift -i

println("Hello World!")

बेशक, एक बार Xcode 6 आधिकारिक तौर पर रिलीज़ हो जाता है और आप इसे अपने डिफ़ॉल्ट डेवलपर टूल के रूप में बदल देते हैं, आप DEVELOPER_DIR = .. बिट्स को छोड़ सकते हैं और बस "xcrun स्विफ्ट" का उपयोग कर सकते हैं।


4

सुनिश्चित करें कि आप xcode 6.0 स्थापित करते हैं , लेकिन 6.1 नहीं

यदि आपको कोई त्रुटि मिलती है:

<unknown>:0: error: the SDK 'MacOSX10.9.sdk' does not support Swift

बस दौडो

xcrun --sdk iphonesimulator8.0 swift

या आप कर सकते हो

export SDKROOT="iphonesimulator8.0" 

और फिर

xcrun swift

xcodebuild -showsdksउपलब्ध एसडीके नामों को सूचीबद्ध करने के लिए " " का उपयोग करें ।

यदि आप xcode 6.1 स्थापित करते हैं , तो बस

sudo xcode-select -s /Applications/*your-Xcode-6.1-path.app*/Contents/Developer
xcrun swift

2

XCode6 के लिए, इन आदेशों को चलाएं:

$ sudo xcode-select -s /Applications/Xcode.app/Contents/Developer/

$ xcrun swift

यदि आपको कोई त्रुटि मिलती है:

<unknown>:0: error: the SDK 'MacOSX10.9.sdk' does not support Swift

प्रयत्न:

xcrun swift -sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk

1

टर्मिनल खोलें,

$sudo xcode-select -switch /Applications/Xcode6-Beta6.app/Contents/Developer

नोटिस:Xcode6-Beta6.app आप स्थापित उपयुक्त संस्करण के लिए प्रतिस्थापित किया जाना चाहिए

फिर इस लाइन alias swift='xcrun swift'को डाल दिया~/.bash_profile

तथा,

$source ~/.bash_profile

$swift

तुम वहाँ जाओ!


1

Swift REPL (Read Eval Print Loop) की मदद से।

व्याख्या की गई भाषाओं से परिचित डेवलपर्स इस कमांड-लाइन वातावरण में सहज महसूस करेंगे, और यहां तक ​​कि अनुभवी डेवलपर्स को कुछ अनूठी विशेषताएं मिलेंगी

टर्मिनल लॉन्च करें। स्विफ्ट टाइप करें और एंटर दबाएं। फिर आप स्विफ्ट REPL में होंगे।

        1> print("Hello Swift REPL")
     Hello Swift REPL
        2> 10 + 20
     $R0: Int = 30
        3> var name = "Yogendra Singh"
     name: String = "Yogendra Singh"
        4> print(name)
     Yogendra Singh
        5>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.