Skip to content

Instantly share code, notes, and snippets.

@kavu
Last active June 20, 2017 02:58
Show Gist options
  • Save kavu/79f05be2383e97843867 to your computer and use it in GitHub Desktop.
Save kavu/79f05be2383e97843867 to your computer and use it in GitHub Desktop.
Minimal Swift command line Hello World
#!/bin/sh
# So you've installed XCode 6 Beta
# Now we could use Swift toolchain to build a minimal
# command line Hellow World
# let's set new Developer Toolchain bundled with Xcode6-Beta.app
# as default toolchain
# sudo xcode-select -s /Applications/Xcode6-Beta.app/Contents/Developer
# alias for Swift binary
# export SWIFT=/Applications/Xcode6-Beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift
# simple program
#echo 'println("Hello World")' > swifthello.swift
# build stuff
#$SWIFT -sdk $(xcrun --show-sdk-path --sdk macosx) swifthello.swift
## Thanks to @caius, lines 10-17 now obsolete. Just use `xcrun'
echo 'println("Hello World")' > swifthello.swift
xcrun swift swifthello.swift
# run stuff
./swifthello
# By the way, Swift had a lot of options, invoke with `xcrun swift --help'
# Hope that helps
@devsmt
Copy link

devsmt commented Aug 19, 2015

to produce an actual executable:

swiftc script.swift -o myprogram
./myprogram

@JoshCheek
Copy link

When I tried this, it couldn't find println, but I swapped it with print and it worked. Also note that I seem to have swift as a binary in /usr/bin/swift, so for me it was just echo 'print("Hello World")' > hw.swift && swift hw.swift. Amusingly, since running swift without args starts a repl, which reads from stdin, I was also able to echo 'print("Hello World")' | swift

@stanwu
Copy link

stanwu commented Jun 4, 2017

Below example is more simpler :

hello.swift

print("Hello World");

then

swift hello.swift

output

Hello World

@johnutz-self
Copy link

or you could do this:

echo print("Yo Planet") | swift

Welcome to Apple Swift version 3.1 (swiftlang-802.0.53 clang-802.0.42). Type :help for assistance.
Yo Planet

Can't figure out how to suppress the welcome blurb, there is no -q (aka quiet) argument.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment