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.txt指向OR_595.txt根目录中名为 的文件/。该文件可能不存在。普通用户无法在/.

定义outputdirso${outputdir}/${state}_595.txt指向一个可以写入的文件。你用的是tee -a这样或许设计是文件已经存在。我猜测第一个片段应该创建文件。它使用./$2/$i/,因此您需要outputdir在第二个片段中进行相应设置。

相关内容