2

私は非常に小さなスクリプトを試していました

#!/bin/sh

test="$(/home/dell/case3.3/private.key)"

echo $test

私はこのファイルを呼び出しますtest1.sh

という名前のファイルにアクセスしようとしましたprivate.key ファイルに設定されたアクセス許可は次のとおりですprivate.key -rw-rw-r--

ファイルのアクセス許可セットは次のとおりですtest1.sh -rwxrwxrwx

私もやろうとしました

chmod u+x test1.sh

chmod 755 test1.sh

苦悩の中で、私も試しました chmod 777 test1.sh

777私はそれがそうであったようにそれにすべての許可を与えるべきだと信じています..

何が問題なのかわからない、なぜあるのかpermission denied

私はsuper user

4

3 に答える 3

2

/home/dell/case3.3/private.keyスクリプトではなく、実行可能でもありません。 $(/home/dell/case3.3/private.key)そのファイルを実行しようとします。あなたが何をしようとしているのかははっきりしていませんが、おそらくあなたが望んでいるのは:

test="$(cat /home/dell/case3.3/private.key)"
echo "$test"

OPのコメントに応じて編集する

単にその内容を表示するために、ファイル全体を変数に保存する必要はありません。代わりに、以下を使用してください。

cat /home/dell/case3.3/private.key

ただし、ファイルの一部を保存たい場合は、、、またはを使用してください。例えばsedgrepawk

test="$(grep 'somethingInTheFile' /home/dell/case3.3/private.key)"
echo "$test"

または、ファイルを1行ずつ処理することもできます。

while read line; do
  echo $line
done < /home/dell/case3.3/private.key
于 2012-08-02T19:33:05.723 に答える
1
test="$(/home/dell/case3.3/private.key)"

変数 $test に割り当てる前に、ファイル /home/dell/case3.3/private.key を実行します。/home/dell/case3.3/private.key には実行可能ビットが設定されていないため、許可が拒否されたというメッセージが表示されます。

たとえば、私のLinuxシステムでは:

david@david-Mate ~ $ touch xxx
david@david-Mate ~ $ ls -l xxx
-rw-r--r-- 1 david david 0 Aug  2 12:42 xxx
david@david-Mate ~ $ test="$(./xxx)"
bash: ./xxx: Permission denied
于 2012-08-02T19:43:51.970 に答える
0

次のように sudo で実行してみてください。

sudo test1.sh

それはうまくいくかもしれません...

于 2012-08-02T19:27:19.147 に答える