Я люблю и ненавижу писать Bash. Мне нравится, что он настолько оптимизирован для работы с файлами и работает с процессами (я согласен с этим популярным вопросом, что он лучше в этом отношении, чем Python, Ruby и т.д.), но я ненавижу синтаксис, особенно вокруг условностей, циклов и т.д.
(Это субъективно, но я нахожу его как запутанным, так и раздражающим. Например, $var
при чтении, но var
при записи; запись тихо завершается, если есть пробелы вокруг =
; двойные скобки в ifs при использовании регулярное выражение, двойные точки с запятой и отдельные точки с запятой и т.д.)
Как огромный поклонник CoffeeScript, который компилируется в JS, мне было интересно: существуют ли какие-либо языки с эстетическим/синтаксисом таких языков, как Python/Ruby/CoffeeScript, но которые компилируются и выполняются как Bash вместо одно из этих других режимов работы?
например. Мне бы очень хотелось писать в основном Bash с чуть более простым синтаксисом:
$AGGREGATE_FILENAME = 'allfiles.txt'
if not exists $AGGREGATE_FILENAME
touch $AGGREGATE_FILENAME
for $file in files/*
cat $file >> $AGGREGATE_FILENAME
switch $1
case 'test'
run-tests
echo 'Tests finished!'
case 'deploy'
echo 'Packaging...'
mv foo bar/
deploy-bar
Это супер надуманный пример, и синтаксис - это соломенный (в основном, вдохновленный CoffeeScript, но содержащий существенные понятия Bash команд первого класса, отделенные от переменных, и свободный ввод текста).
Во всяком случае, просто вопрос и еда для размышлений. Мне бы хотелось, чтобы мои сценарии были написаны чем-то приятнее, чем Bash. =) Спасибо!