質問: 当方、Xubuntu16.04 64bitです。 terminal上で`./`から始まるスクリプト系のコマンドを実行しようとすると、 `コマンドが見つかりません`とエラーを返されてしまいます。 `sudo`をつけて実行しても同様の結果になります。 何かパッケージが足りないのでしょうか。 --- **追記** ### ファイルの所在について ``` ❯❯❯ cd ~/mozc-2.18.2598.102+dfsg-1\~ut2-20170529 ~/mozc-2.18.2598.102+dfsg-1~ut2-20170529 ❯❯❯ ls mut build_mozc_plus_utdict mozc_2.18.2598.102+dfsg-1~ut2-20170529_amd64.build ``` ### コマンド入力時 ``` ~/mozc-2.18.2598.102+dfsg-1~ut2-20170529 ❯❯❯ sudo ./build_mozc_plus_utdict [sudo] claude0803sz のパスワード: sudo: ./build_mozc_plus_utdict: コマンドが見つかりません ``` ### シェルスクリプトのソース ``` #!/bin/sh # mozcのビルドに必要なパッケージをインストールする # apt-get install -y clang-3.5 libgtk2.0-dev debhelper libibus-1.0-dev build-essential libssl-dev libxcb-xfixes0-dev python-dev gyp protobuf-compiler libprotobuf-dev libqt4-dev libuim-dev libzinnia-dev fcitx-libs-dev devscripts ninja-build cd ./mut/ debuild -b -uc -us -d cd - rm -rf ./mut/ echo '終了\n' ``` やりたいのはmozcのbuildとインストールです (参考記事) --- ソースを再ダウンロードし、再試行したところ実行出来ました。 原因はソースをWindows上で展開したことによる改行コードの違いだと思われます。
回答: シェルスクリプトの改行コードが間違っている可能性があります。 シェルスクリプトを編集しませんでしたか? Ubuntu など Linux/UNIX では改行コードは LF ですが、Windows は CR+LF です。 Windows のエディタで編集すると CR+LF に書き換わってしまうことがあります。 以下のようにして確認してみてはいかがでしょうか。 ``` luna:/t/t/mozc-2.18.2598.102+dfsg-1~ut2-20170529 % od -tx1c build_mozc_plus_utdict | head -2 0000000 23 21 2f 62 69 6e 2f 73 68 0d 0a 0d 0a 23 20 6d # ! / b i n / s h \r \n \r \n # m ``` これは CR+LF の例です。このように `\r` (←これが CR) が含まれていると、実行できません。 その場合は、エディタで改行コードを LF のみに設定して保存してください。