1

SSH 経由の Synology サーバーで、Linux でスクリプトを作成しようとしました

だから私はファイルtest.shを書きました

#!/bin/bash
echo "this is a test"

ファイルを保存しました。その後、私はしました

chmod 755 test.sh

私がした

./test.sh

その後、このエラーが発生しました

-ash "./test.sh" is not found

ファイルはで作成されました

/root

理解できない

4

2 に答える 2

3

シェル (ash?) がスクリプトを実行しようとして、ENOENT(そのようなファイルやディレクトリがない) エラー コードが返されます。これはスクリプト自体を参照できますが、この場合は#!行で名前が付けられたインタープリターを参照します。

つまり、/bin/bash存在しないため、スクリプトを開始できませんでした。

回避策: bash をインストールするか、(bash 固有の機能が必要ない場合) 最初の行を に変更し#!/bin/shます。

于 2015-09-29T21:15:58.233 に答える
1

これは、ハッシュ バン プログラムの癖の 1 つです。インタープリター(つまり、スクリプトを解釈するプログラム) が見つからない場合、 のような完全に有用なエラーは発生しません/bin/bash: no such fileが、完全に役に立たず誤解を招くtest.sh: not found.

これがUnix Hater's Handbookにない場合は、あるはずです。:-)

#!/bin/shor#!/path/to/bashまたは#!/usr/bin/env bash(bash の PATH を検索します) のいずれかを使用できます。

于 2015-09-29T21:14:41.450 に答える