このzshスクリプトを実行しようとしています。
#!/bin/zsh
paths=(
"/docs/"
)
for path in $paths; do
dirsearch.py -u "http://10.129.140.251:8080$path" \
-r --csv-report="$(date +"%Y_%m_%d_%H_%M")_$path.csv"
sleep(300)
done
実行しようとすると、次のエラーが発生します。
./dirsearch.sh:8: command not found: date
./dirsearch.sh:8: command not found: dirsearch.py
./dirsearch.sh:10: unknown file attribute: 3
これまでに行われた手順:
dirsearch.pyがあるフォルダが次のパスに追加されていることを確認してください。
export PATH=/home/user/targets/dirsearch:$PATH
私は現在シェルとしてzshを使用していることを確認しました。
コンピュータのさまざまな場所でdateおよびdirsearch.pyコマンドをエラーなしで実行しました。
この質問をグーグルしました。ほとんどのソリューションは間違ったパス設定を指していますが、私のソリューションがどのように誤って設定されているかを理解することはできません。
答え1
Zshでは、以前のcshまたはtcshと$path
同様に$PATH
束常に互いの値を反映するパラメータは、1つを更新すると他のものも更新されます。あなたはこれを見ることができます:
% typeset path
typeset -aT PATH path=( /usr/bin /bin )
% typeset PATH path
PATH=/usr/bin:/bin
path=( /usr/bin /bin )
% path+=foo
% typeset PATH path
PATH=/usr/bin:/bin:foo
path=( /usr/bin /bin foo )
スクリプトでこれを上書きするので、$path
これも上書きされます$PATH
。
解決策は、ループで別の変数名for
(たとえば、$_path
または)を使用することです。$dir