bashシェルから来て、ループの簡単なローリングを見逃しました(for i in(...); do ... done;)
ループの典型的なワンライナーを cshell に投稿していただけますか?
ワンライナーでお願いします。複数行ではありません thx
csh
マニュアルページには次のように記載されています。
foreach、switch、while ステートメント、および if-then-else 形式の if ステートメントでは、以下に示すように、主なキーワードが入力行の単一の単純なコマンドに含まれている必要があります。
と
foreach と end はどちらも、別の行に単独で表示する必要があります。
と
else および endif という語は、入力行の先頭になければなりません。if は、入力行に単独で表示するか、else の後に表示する必要があります。
と
while と end は、入力行に単独で表示する必要があります。
うわー、私は何csh
年も台本を書いていません。しかし、ビル・ジョイは自分で書いたので、ノスタルジックな努力をする価値があると思います...
set t=(*)
foreach i ($t)
echo $i >> /tmp/z
end
あるいは単にforeach i (*)
このループ構造は、csh に組み込まれているword listの概念とうまく連携します。これは、bash にはある程度存在しますが、vanilla posix シェルには存在しません。
set q=(how now brown cow)
echo $q[2]
ループはforeach
、このデータ構造をきれいに反復します。
cshオプションにもかかわらず、何とか修正したので、次のようなことができます:
printf "while ( 1 ) \n ps -aux|grep httpd \n echo 'just a new row' \n sleep 2 \n end" | csh -f