tee:/OR_595.txt: 権限が拒否されました。

tee:/OR_595.txt: 権限が拒否されました。

ファイルにアドレス情報を追加しようとしています。エラーメッセージが表示されます。

tee:/OR_595.txt: 権限が拒否されました。

次のコードを使用してファイルを作成します。

cstates=($(awk -v FS=^ '{print $5}' "$1"))

for i in "${cstates[@]}"
do

    :

if [[ ! -f "./$2/$i/${i}_595.txt" ]]; then

    echo "Making ${i}_595.txt File"
    touch "./$2/$i/${i}_595.txt"
    chmod a+x "./$2/$i/${i}_595.txt"
    else echo "File ${i}_595.txt already exists"


fi
done

このコードはファイルに書き込んでいます。

file_name="$1"

while IFS=^ read -r company_name address1 address2 city state zip phone
do

printf "Company Name: %s\nCompany Address: %s%s, %s, %s, %s\nCompany Phone Number: %s\n\n" \
      "${company_name}" "${address1}" "${address2}" "${city}" "${state}" "${zip}" "${phone}" | tee -a "${outputdir}/${state}_595.txt" > /dev/null

done < $file_name

すべてのフォルダ、サブフォルダ、ファイルに対する権限を確認しました。

drwxrwxr-x 56 jh78454 jh78454 4096 Feb 19 14:58 States
drwxrwxr-x 2 jh78454 jh78454 4096 Feb 19 15:14 WA
-rwxrwxr-x 1 jh78454 jh78454 0 Feb 19 15:14 WA_595.txt

WinSCPを介して複数のフォルダとファイルの権限を確認しましたが、すべて同じです。なぜ権限拒否エラーが発生するのか分からない。

ベストアンサー1

なぜ権限拒否エラーが発生するのか分からない。

明らかに${outputdir}空の文字列(変数が定義されていないか空白)に${state}拡張されていますOR${outputdir}/${state}_595.txt/OR_595.txt

/OR_595.txtOR_595.txtルートディレクトリにあるファイルを指します/。ファイルが存在しない可能性があります。一般ユーザーはアクセスできません/

書き込み可能ファイルを指すようにoutputdir定義します。これが${outputdir}/${state}_595.txtあなたが使ったものです。tee -aおそらくデザインファイルはすでに存在します。私推測する最初のスニペットはファイルを生成する必要があります。を使用するので、2番目の部分で適切に設定する./$2/$i/必要があります。outputdir

おすすめ記事