
私は Linux Mint 19.03 を使用しています。
セットアップシェルスクリプトファイルがありますsetup.sh
。実行すると./setup.sh
muyustan@mint:~/Downloads/quartusExtracted$ ./setup.sh
bash: ./setup.sh: /bin/env: bad interpreter: No such file or directory
のシェバンsetup.sh
:
#!/bin/env bash
私は Linux の世界にかなり不慣れなので、これらのことに関する私の理解は非常に狭いです。
/bin/env bash
正確なbash
パスを指定する代わりに を使用することは、「環境変数を検索して 」を見つけるようなものだとわかっていました。のディレクトリbash
を調べると、そのようなファイルは存在しないことがわかります。/bin
env
muyustan@mint:/usr/bin$ ll /bin | grep "env"
lrwxrwxrwx 1 root root 6 Mar 21 14:35 open -> openvt*
-rwxr-xr-x 1 root root 18872 Jan 22 2018 openvt*
また、
muyustan@mint:~/Downloads/quartusExtracted$ which bash
/bin/bash
したがって、シェバンを変更すれば問題は解決すると思いますsetup.sh
(#! /bin/bash
試していません)。しかし、これはあまり直感的ではないようです。もしそうなら、私は自分自身にこう問いかけます。
「このアプリケーション(Quartus 13.1)の開発者はミスを犯したのでしょうか?」と聞かれ、私のシステムに何か問題があるのではないかと思ってしまいます。
それで、疑問なのは、なぜこのような状況になっているのかということです。
ありがとう。
答え1
システムに問題はありません。 へのパスが間違っているだけですenv
。少なくとも Linux システムでは、env
バイナリは通常 にあり/usr/bin
、 ではありません/bin
。
$ type env
env is /usr/bin/env
つまり、スクリプトはシステムに を使用するように指示しています/bin/env
が、これは存在しません。そのため、このエラーが発生します。正しいシェバンに変更するだけで問題は解決します。
#!/usr/bin/env bash