
다음 명령(마지막 명령은 zsh 함수)을 단일 bash 스크립트로 결합하는 방법이 있습니까?
find /path/to/directory/*/* ! -name "*.js" -type f -delete
find /path/to/directory/*/* ! -name "*jquery*" -type f -delete
find /path/to/directory/*/* ! -name "*jquery*" -type d -delete
for dir (/path/to/directory/*(/)) rm -f $dir/*.js(OL[2,-1])
답변1
명령을 순차적으로 실행하는 스크립트를 작성하려는 경우 두 가지 실제 옵션이 있습니다.
- 마지막 명령에 대해 zsh를 호출하여 실행하는 bash 스크립트를 작성합니다(한 쉘이 다른 쉘을 호출하도록 함).
- 4개의 명령을 순서대로 실행하는 zsh 스크립트를 작성하고 bash는 잊어버리세요.
bash는 Linux에서 매우 일반적인 쉘이지만 bash 자체에는 마법 같은 것이 없습니다. zsh 스크립트를 쉽게 작성할 수도 있습니다. #!
시작 줄은 스크립트를 실행하는 데 사용해야 하는 프로그램을 알려줍니다.
따라서 위의 옵션 2를 사용하려면(아마도 그렇게 할 것임) #!/bin/zsh
zsh(또는 zsh가 시스템에 있는 모든 위치)로 시작하는 일반 텍스트 파일을 만든 다음 명령을 실행하면 됩니다. 당신은 다음과 같은 것을 얻게 될 것입니다 :
#!/bin/zsh
find /path/to/directory/*/* ! -name "*.js" -type f -delete
find /path/to/directory/*/* ! -name "*jquery*" -type f -delete
find /path/to/directory/*/* ! -name "*jquery*" -type d -delete
for dir (/path/to/directory/*(/)) rm -f $dir/*.js(OL[2,-1])
그 이상은 없어야 합니다.노트:zsh의 특성에 따라 더 많은 참조를 사용해야 할 수도 있고 필요하지 않을 수도 있습니다. 나는 확장되는 변수 주위에 항상 "따옴표"를 두는 것을 선호합니다.긍정적인만일의 경우에는 필요하지 않습니다(그런 경우에도 종종 필요합니다).