Bash가 다른 디렉토리 컨텍스트에서 명령을 실행하려면 어떻게 해야 합니까?
특정 디렉토리 내에서 호출되는 공통 명령어가 있습니다.이 프로그램의 /bin에 있는 실행 파일은 1개뿐이며, 현재 작업 디렉토리는 이 프로그램을 올바르게 실행하기 위해 매우 중요합니다.스크립트는 스크립트가 실행되는 디렉토리 내에 있는 파일에 영향을 줍니다.
또, 커스텀 셸 스크립트는 1개의 디렉토리에서 몇개의 작업을 실시합니다만, 상기의 커스텀 셸 스크립트는 다른 디렉토리에 있는 것처럼 호출할 필요가 있습니다.
셸 스크립트로 이 작업을 수행하려면 어떻게 해야 합니까?
사용하다cd
즉, 이러한 종류의 서브셸을 사용하는 간단한 방법은 괄호입니다.
(cd wherever; mycommand ...)
즉, 커맨드에 필요한 환경이 있는 경우, 그 커맨드를 사용하는 것에 부담을 주는 것이 아니라, 환경 자체를 확실히 할 필요가 있습니다(확실히 정의된 대규모 시스템의 컨텍스트에서 매우 특정 환경에서 사용되는 내부 커맨드가 아닌 경우).발신자가 이미 필요한 환경을 확보해야 합니다).보통 이것은 일종의 셸 스크립트 래퍼입니다.
(cd /path/to/your/special/place;/bin/your-special-command ARGS)
를 사용할 수 있습니다.cd
내장 또는pushd
그리고.popd
이 목적을 위해 내장되어 있습니다.예를 들어 다음과 같습니다.
# do something with /etc as the working directory
cd /etc
:
# do something with /tmp as the working directory
cd /tmp
:
빌트인은 다른 명령어와 마찬가지로 사용할 수 있습니다.또, 디렉토리 콘텍스트는 스크립트에서 원하는 횟수만큼 변경할 수 있습니다.
현재 작업 디렉토리로 돌아가려면 다음 절차를 따릅니다.
current_dir=$PWD;cd /path/to/your/command/dir;special command ARGS;cd $current_dir;
- 변수를 설정하고 있습니다.
current_dir
동등한pwd
- 그 후 우리는 할 것이다.
cd
명령어를 실행할 곳으로 이동합니다. - 명령어를 실행하고 있습니다.
- 그러면 저희가
cd
우리의 변수로 돌아가서current_dir
또는
pushd && cd /path/to/your/command/dir && special command ARGS && popd
@ape of bart 및 @Constantin 제공
유용한 정보입니다.
이렇게 하면 셸 디렉토리가 다음과 같이 변경됩니다.~/project
function mymake() {
cd ~/project && make $1
}
이거 안 돼
function mymake() {
(cd ~/project && make $1)
}
달리다
mymake something
언급URL : https://stackoverflow.com/questions/10566532/how-can-bash-execute-a-command-in-a-different-directory-context
'programing' 카테고리의 다른 글
파일에서 n번째 줄을 가져오는 Bash 도구 (0) | 2023.04.15 |
---|---|
MVVM: ListBox에 바인딩하고 있습니다.선택된항목이 업데이트되지 않습니까? (0) | 2023.04.15 |
상단과 하단의 높이에 안전한 영역을 확보합니다. (0) | 2023.04.15 |
엑셀 워크시트를 이름으로 참조하시겠습니까? (0) | 2023.04.15 |
POI를 사용하여 오래된 Excel .xls 파일을 처리하는 방법 (0) | 2023.04.15 |