Запустите скрипт swift внутри скрипта bash - PullRequest
0 голосов
/ 11 мая 2018

Я хочу выполнить скрипт swift из строки внутри скрипта bash и получить результат выполнения.
Я испробовал несколько вариантов и не смог достичь необходимого результата.
Iне хотите использовать отдельный файл для хранения скрипта swift.Я хочу, чтобы скрипт swift находился внутри переменной окружения.

APP="
import Foundation 

let path = CommandLine.arguments[1]
print(path)

"

#xcrun swift main.swift /path/path2/path3/path4 **this is not that I want**
#I need somthing like this:
xcrun swift $APP /path/path2/path3/path4

При запуске этого скрипта у меня будет ошибка:

ошибка: невозможно вызвать подкоманду: /Applications/Xcode-beta.app/Contents/Developer/Наборы инструментов / XcodeDefault.xctoolchain / usr / bin / swift-import (Нет такого файла или каталога) Как мне выполнить скрипт swift из строки?

1 Ответ

0 голосов
/ 11 мая 2018

Вы можете позвонить swift -, чтобы прочитать источник со стандартного ввода, и «здесь документ» предоставить встроенный код Swift.

Пример: Содержимое x.sh:

echo "Before running Swift"
xcrun swift - /path/path2/path3/path4 <<'EOF'
import Foundation 

let path = CommandLine.arguments[1]
print(path)
EOF
echo "After running Swift"

Запуск скрипта:

$ bash x.sh
Before running Swift
/path/path2/path3/path4
After running Swift

Или, если вы хотите прочитать код Swift из переменной:

APP="
import Foundation 

let path = CommandLine.arguments[1]
print(path)

"

echo "Before running Swift"
xcrun swift - /path/path2/path3/path4 <<< "$APP"
echo "After running Swift"
...