bash: '(' 構文の近くで予期しないエラーが発生しました。 [閉じる]

bash: '(' 構文の近くで予期しないエラーが発生しました。 [閉じる]

私はコンピュータ微生物学のチュートリアルを受講しています。

  • ウィリアム・リンドストローム、ガレット・モリス、クリストファー・ウェーバー、ルース・ヒューイ(2008-01-29)。AutoDock 4を使用した仮想上映。スクリプス研究所。

10ページには、次の内容が含まれていますex01.csh(元のインデントがない、StackExchangeの寄稿者がインデントします)。

foreach f (tmp*)
  echo $f
  set zid = `grep ZINC $f`
  if !(-e "$zid".mol2) then
     set filename = "$zid".mol2
  else foreach n (`seq –w 1 99`)
    if !(-e "$zid"_"$n".mol2) then
      set filename = "$zid"_"$n".mol2
      break
    endif
   end
   endif
   mv –v $f $filename
end

上記のコマンドを実行したいと思います。過去2日間、この問題を解決しようとしましたが失敗しました。毎回第一段階では

foreach f (tmp*)

それは言う

bash : syntax near unexpected error '(' 

私はLinuxに関する知識が全くなく、チュートリアルで見たことに従いました。私の問題をどのように解決できますか?

ベストアンサー1

@Archemarが正しく指摘したように、これはデフォルトのLinuxシェルで実行されていないcshellスクリプトです。

Debian で次のことを行います。

apt-get install tcsh

スクリプトの最初の行に次を追加します。

#!/bin/tcsh

おすすめ記事