Bash 스크립트는 권한 거부 메시지를 반환합니다.

Bash 스크립트는 권한 거부 메시지를 반환합니다.

이 스크립트를 실행하면:

#!/bin/bash
# internet-status.sh
# ==================

now=$(date +%F)
cmd_output=$(nc -dzvw1 8.8.8.8 443 2>&1)
logfile_string=$("[$now] $cmd_output")
logfile=$("$HOME/internet.log")
$logfile_string >> "$logfile"

다음을 반환합니다.

/home/xxxx/internet.log: Permission denied

internet-status.sh에서 chmod u+x를 실행했습니다.

권한은 다음과 같습니다:

-rw-rw-rw- internet.log그리고 -rwxrw-r-- internet-status.sh

답변1

$(...)명령 대체.

And date +%Fnc -dzvw1 8.8.8.8 443 2>&1는 명령 "[$now] $cmd_output"이고 "$HOME/internet.log"단지 문자열일 뿐이며 다음과 같이 할당되어야 합니다.

logfile_string="[$now] $cmd_output"
logfile="$HOME/internet.log"

echo그런 다음 파일에 문자열을 추가 할 수 있습니다 .

echo "$logfile_string" >> "$logfile"

관련 정보