ファイルにアドレス情報を追加しようとしています。エラーメッセージが表示されます。
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.txt
OR_595.txt
ルートディレクトリにあるファイルを指します/
。ファイルが存在しない可能性があります。一般ユーザーはアクセスできません/
。
書き込み可能ファイルを指すようにoutputdir
定義します。これが${outputdir}/${state}_595.txt
あなたが使ったものです。tee -a
おそらくデザインファイルはすでに存在します。私推測する最初のスニペットはファイルを生成する必要があります。を使用するので、2番目の部分で適切に設定する./$2/$i/
必要があります。outputdir