답변:
sudo맨 페이지에는 이와 같은 작업을 수행하는 방법을 설명하는 팁 이 있습니다. 여기 하나의 라이너가 있습니다.
#!/usr/bin/bash
sudo sh -c "echo \"add this line to the code\" >> fileName"
분명히, 먼저 sudo권한 을 갖도록 사용자를 설정해야합니다 . sh쉘 때문에 루트 소유의 파일로 리디렉션 사용됩니다. 또한 echo명령에 사용 된 따옴표를 피해야했습니다 .
su 대부분의 유닉스 시스템에서 사용할 수 있으며 다음과 같이 작동합니다.
su root -c 'echo "add this line to the code" >> fileName'
tee함께 사용할 수 있습니다 sudo:
echo "add this line to the code" | sudo tee -a filename > /dev/null
echo출력은 |( pipe ) 로로 리디렉션 됩니다 sudo tee.
이 경우 표준 입력tee 에서 읽고 지정된 파일 을 표준 출력에 씁니다 . (또는 )는 파일을 덮어 쓰지 않고 파일에 추가합니다. 로가 로 실행 이 루트 권한으로 파일을 엽니 다. 마지막으로 출력을 표준 출력 으로 억제 합니다 .filename-a--appendteeteesudo> /dev/nulltee
사용의 장점 중 하나 tee대신에 단지 전체 명령을 시작하는 재 지정을 포함 su -c하거나 sudo sh -c당신이하지 않아도된다는 어떤 방식으로 초기 명령의 인용 (이미 시간이 꽤 추한 얻을 수 따옴표를 포함하는 라인을 인용) 변경합니다.
sudo비밀번호는로 캐시되지 않는 것 같습니다su.