![사용자 프롬프트 없이 스크립트에서 parted mklabel을 실행하는 방법은 무엇입니까?](https://linux55.com/image/187380/%EC%82%AC%EC%9A%A9%EC%9E%90%20%ED%94%84%EB%A1%AC%ED%94%84%ED%8A%B8%20%EC%97%86%EC%9D%B4%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%97%90%EC%84%9C%20parted%20mklabel%EC%9D%84%20%EC%8B%A4%ED%96%89%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
parted 유틸리티를 사용하여 드라이브를 다시 분할하는 bash 스크립트를 작성하려고 합니다. 스크립트 내에서 실행되기 때문에 사용자에게 입력하라는 메시지를 표시하지 않는 것을 분리하고 싶습니다(또는 해당 메시지에 응답할 수 있는 방법이 있음).
처음에는 "-s" 또는 "--script" 옵션을 parted에 전달하려고 시도했지만 예상대로 작동하지 않았습니다. 스크립트를 실행하려고 하면 parted $DRIVE -s mklabel gpt
parted가 "i", "y", "i"(무시, 예, 무시)의 세 가지 프롬프트로 표시되는 경고에 응답할 것으로 예상합니다. 그러나 스크립트 실행이 중지되고 다음 메시지가 표시됩니다.Error: Partition(s) on /dev/nvme1 are being used.
명령을 수동으로 실행하면 메시지가 표시되고 "i" 응답을 전달하여 경고를 무시하고 계속할 수 있습니다. 인터넷 검색을 통해 -s 옵션을 사용하여 실행할 때 parted가 기본 응답을 가정한다는 것을 알게 되었습니다. 이 경고가 나타나면 기본 옵션은 실수로 드라이브가 손상되는 것을 방지하기 위해 취소하는 것이라고 가정합니다.
-s를 parted에 전달하지 않고 스크립트를 실행하면 터미널에 입력하라는 메시지가 표시되고 입력을 제공한 후 나머지 스크립트는 정상적으로 실행됩니다. 그런 다음 이와 같은 echo를 사용하여 응답을 파이프하려고 시도했지만 echo "i\ny\ni" | repart.sh
그것도 작동하지 않는 것 같습니다.
원하는 동작을 얻기 위해 이 기본값을 재정의하는 방법이 있습니까? 그렇지 않다면 이를 달성할 수 있는 다른 방법이 있습니까?
맥락: 이 스크립트를 실행하는 대상 컴퓨터는 Ubuntu 18.04.3 LTS를 실행 중입니다.
참고: Ubuntu에 표준이 아닌 다른 유틸리티를 설치할 수도 있지만 그렇게 하고 싶지는 않습니다.
편집: @chexum 덕분에 해결책을 찾았습니다! parted:를 실행하기 전에 wifs 유틸리티를 호출하도록 스크립트를 수정한 wipefs -a -f $DRIVE
다음, 나머지 하나의 프롬프트에 응답하기 위해 'i'를 파이프로 연결하도록 parted 명령을 수정했습니다 yes "i" | parted $DRIVE mklabel gpt
. 이제 작업이 완전히 자동화되었습니다. 주의하지 않으면 wifs 유틸리티를 사용할 때 자체적인 위험이 따릅니다. 이 솔루션은 제 목적에는 적합하지만 다른 목적에는 적합하지 않을 수 있습니다.