私は Bash を書くのが好きでもあり嫌いでもあります。ファイルの操作とプロセスの操作が非常に合理化されていることは気に入っています (この点に関しては Python や Ruby などよりもはるかに優れているというよくある質問に同意します) が、特に条件文やループなどに関する構文が嫌いです。 .
(これは主観的なものですが、私はそれが紛らわしくて迷惑だと思います。たとえば$var
、読むとき、しかしvar
書くとき; 周りにスペースがあると、書き込みは黙って失敗します=
; regexp を使用するときの ifs の二重括弧; 時には二重のセミコロンと単一のセミコロン; など。 )
JS にコンパイルされる CoffeeScript の大ファンとして、私は疑問に思っていました: 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 よりも優れた方法でスクリプトを記述できるようになりたいと思っています。=) ありがとう!