繰り返し後のbashスクリプトで「コマンドが見つかりません」エラー

繰り返し後のbashスクリプトで「コマンドが見つかりません」エラー

Debian 10でbashスクリプトを作成しようとしています。

  • ディレクトリを見る
  • すべてのサブディレクトリを見つける
  • どのファイルがあるかを確認してください。fullchain.pem
  • このファイルを変換しopensslて結果を別のディレクトリにコピーします。

これが私がしたいことです:

ROOTPATH="/etc/letsencrypt/live"

for PATH in $ROOTPATH/*
do
  if test -f "${PATH}/fullchain.pem"; then
    openssl pkcs12 -export -out $PATH/fullchain.pfx -in $PATH/fullchain.pem -inkey $PATH/privkey.pem -passin pass:whatever -passout pass:whatever
    cp $PATH/fullchain.pem ./Server/fullchain.pfx
  fi
done

質問:エラーがopenssl発生します。ループの内部またはループの後にのみ機能するようです。他のすべて、さらには基本コマンド(例:)でもこのエラーが発生します。cpcommand not foundechotouch

もちろん既にopensslインストールしておいたのでcp命令数が少なくありません。すべてコマンドラインで実行されます。

ループの内側またはループの後にのみ発生することがわかりました。または、その回線の前に電話をかけようとすると、openssl正しく実行されます。cpfor PATH...

この単純化されたバージョンでも同じエラーが発生します。

for PATH in "/etc/letsencrypt/live/*"
do
  cp
done

ループに何らかの問題があり、なぜそれほど奇妙なエラーが発生するのですか?

ベストアンサー1

PATH別のものと交換してください。環境変数をイテレータとして使用しないことをお勧めします。

おすすめ記事