스크립트 파일에서 변수 정의를 다른 여러 줄의 코드와 함께 이동 시켰을 때 개발 서버에서 자동 빌드에 사용하는 일부 셸 스크립트를 유지 관리하고있었습니다. 그 결과,이 라인 :rm -rf 문에서 환경 변수를 사용하는 것은 나쁜 습관입니까?
WEB=/home/server/web
는 다른 스크립트 파일에 해당 스크립트 파일에서 이동되지있어, 첫 번째 스크립트 파일에 의해 사용되는 환경에서 더 이상이었다. 이 방법 나쁜 실제로 환경 변수를 사용하여, rm -rf /*
내 질문은 고려할 것 또는 유해한 것으로 간주 : 따라서, 나중에 파일,
rm -rf $WEB/*
는 리눅스 사용자의 무시 무시한 명령에 평가되었다? 고전
변수 선언을 제거하는 의미를 즉시 명확하지 않고, 선 아래로 놀라운 일이 될 수if (foo)
bar()
bar2()
같은 뭔가? 아니면 이런 일을 할 때 좀 더주의해야합니까?
나만의 것 : 당신이/문자를 넣는 곳을 조심한다면 해를 입을 가능성을 줄일 수 있습니다. 예 : 'WEB =/home/server/web /'그리고 나서'rm -rf $ WEB'. 이것은 엄격하게 동일하지는 않지만 대부분의 의도와 목적을위한 것입니다. 따라서 $ WEB가 우연히 설정되지 않으면 rm 명령은 * nothing *을 수행하므로 모든 것을 제거하는 것보다 훨씬 낫습니다. – crazy2be