![Bash 스크립트를 효과적으로 사용하는 방법(비용과 좋은 습관을 줄이는 다양한 방법)은 무엇입니까? [폐쇄]](https://linux55.com/image/26388/Bash%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A5%BC%20%ED%9A%A8%EA%B3%BC%EC%A0%81%EC%9C%BC%EB%A1%9C%20%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95(%EB%B9%84%EC%9A%A9%EA%B3%BC%20%EC%A2%8B%EC%9D%80%20%EC%8A%B5%EA%B4%80%EC%9D%84%20%EC%A4%84%EC%9D%B4%EB%8A%94%20%EB%8B%A4%EC%96%91%ED%95%9C%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%20%5B%ED%8F%90%EC%87%84%5D.png)
이것은 가장 중요한 질문 중 하나입니다. 스크립트를 효과적으로 작성하는 방법은 무엇입니까? 나쁜 방법은 무엇이고 좋은 방법은 무엇입니까? 나는 몇 가지를 알고 있으며 여기서 지적하겠습니다. 혹시 다른 내용을 아시는 분 계시면 댓글 남겨주세요. 이 질문은 사용 가능한 모범 사례를 이해하기 위해 요청됩니다. 모든 것을 Google로 검색하는 것은 매우 어렵고 모든 것이 항상 같은 위치에 표시되는 것은 아닙니다. 그러므로 이 질문은 경험이 있는 모든 사람들에게 주어졌습니다. 나는 이런 것들을 스스로 배우려고 노력하고 있습니다. 따라서 여기에 제공하는 모든 의견/답변은 저와 저 같은 사람들에게 매우 도움이 될 것이라고 생각합니다. 미리 감사드립니다.
답변1
1. 디렉토리 트리를 별도로 정의할 필요가 없습니다.
잘못된 접근 방식:
~ $ mkdir tmp
~ $ cd tmp
~/tmp $ mkdir a
~/tmp $ cd a
~/tmp/a $ mkdir b
~/tmp/a $ cd b
~/tmp/a/b/ $ mkdir c
~/tmp/a/b/ $ cd c
~/tmp/a/b/c $
좋은 생각:
~ $ mkdir -p tmp/a/b/c
2. 아카이브:
가끔 사람들이 a.tar와 같은 tar를 아카이브를 추출하려는 다른 디렉토리로 옮기는 것을 봅니다. 그러나 이 목적을 위해 디렉토리를 지정하기 위해 여기에서 -C 옵션을 사용할 수 있으므로 이것이 필요하지 않습니다.
~ $ tar xvf -C tmp/a/b/c newarc.tar.gz
3. 제어 연산자의 중요성:
두 개의 명령이 있지만 두 번째 명령은 첫 번째 명령이 실행될 때만 실행되어야 하며, 그렇지 않으면 두 번째 명령이 실행되지 않는다고 가정합니다. 따라서 여기의 명령은 다른 명령이 0 종료 상태를 반환하는 경우에만 실행되어야 합니다.
예:
~ $ cd tmp/a/b/c && tar xvf ~/archive.tar
위의 예에서 아카이브의 내용은 디렉토리:c에서 추출되어야 하지만 해당 디렉토리가 존재하는 경우에만 가능합니다. 디렉토리가 존재하지 않으면 tar 명령이 실행되지 않고 아무것도 추출되지 않습니다.