그래서 나는 라스베리에 대한 설치 스크립트를 만들려고 노력하고 있습니다. 먼저 정적 IP를 제공하는 것입니다.
echo -e "Enter static IP"
read static_ip
echo -e "Enter DNS IP"
read dns_ip
echo -e ""
echo -e "The following settings will be set"
echo -e "\e[32mStatic IP:\e[0m\t${static_ip}"
echo -e "\e[32mDNS IP:\e[0m\t${dns_ip}"
sudo echo "interface wlan0" >> /etc/dhcpcd.conf
sudo echo "static ip_address=${static_ip}/24" >> /etc/dhcpcd.conf
sudo echo "static routers=${dns_ip}" >> /etc/dhcpcd.conf
sudo echo "static domain_name_servers=${dns_ip}" >> /etc/dhcpcd.conf
그러나 그것은 “권한이 거부되었습니다”라고 계속 말하는데, 내가 여기서 뭘 잘못하고 있는지 궁금해하고 있었습니까?
답변
리디렉션 ( >>
)은 셸에서 수행됩니다. 당신의 sudo
영향 echo
만.
이 트릭을 사용할 수 있습니다 :
echo "something" | sudo tee -a /output/file > /dev/null
이 방법으로 tee
텍스트를 /output/file
적절한 권한으로 추가합니다 .
편집 (응답 코멘트) : tee
입력을 전달하고 복제합니다 (일반적으로 곱하기). 이 경우 하나의 사본이 파일로 이동하고 다른 사본이 파이프를 따라 이동합니다. 첫 번째 사본 만 필요하기 /dev/null
때문에 두 번째 사본을 콘솔로 표시하지 않도록 리디렉션합니다 . /dev/null
사라지는 모든 것 .
답변
리디렉션이 작동하도록 서브 쉘에서 실행해야합니다.
sudo sh -c echo “문자열”>> 파일
[sudo 매뉴얼 페이지에서 : 예제]