이 코드를 이해하기 :
if [ -f /etc/bashrc ]; then . /etc/bashrc fi
잘 모르겠습니다. -f가 정확히 무엇을 의미하는지.
답변
이를 확인하기위한 관련 man 페이지는 쉘 자체의 페이지입니다. bash
, -f
는 셸이 제공하는 기능이므로 “bash 내장 기능입니다.
내 시스템에서 (CentOS 7), 훌륭한 맨 페이지에서 다룹니다. grep
는 다른 배포에서 동일한 결과를 제공하지 않을 수 있습니다. 그럼에도 불구하고 man bash
를 실행 한 다음 “-f”를 검색하면 필요한 결과를 얻을 수 있습니다.
$ man bash | grep -A1 "\-f file$" -f file True if file exists and is a regular file. $
답변
요컨대, 코드 조각은 /etc/bashrc
파일이있는 경우 소싱하고 존재 여부는 -f
가 연산자 / 매개 변수 인 [
명령으로 확인됩니다.
문은 명령의 종료 상태를 평가합니다. 성공시 0입니다. 따라서 다음과 같이하는 것이 적절합니다.
if ping -c 4 google.com; then echo "We have a connection!" fi
귀하의 경우 명령은 [
입니다. 이것은 test
명령으로도 알려져 있습니다. 따라서 수행하는 것이 “완벽하게 유효합니다.
if test -f /etc/bashrc; then . /etc/bashrc fi
-f flag는 두 가지를 확인합니다. 제공된 경로가 존재하고 일반 파일입니다. /etc/bashrc
가 실제로 디렉토리이거나 누락 된 경우 테스트는 실패를 알리기 위해 0이 아닌 종료 상태를 반환해야합니다.
이 명령은 원래 별도의 명령이었습니다. 쉘의 내장 명령의 일부입니다. 요즘에는 대부분의 Bourne과 같은 쉘이 내장 명령을 가지고 있으며 이것이 쉘이 사용할 것입니다.
참고로 /etc/bashrc
는 관리자 또는 코드 스 니펫의 원래 작성자가 사용중인 불필요한 추가 파일처럼 보입니다. bash에 대한 시스템 전체 rc 파일로 사용되는 /etc/bash.bashrc
가 있으므로이 파일이 사용될 것으로 예상합니다.
참조 :