기본적으로 터미널에 입력하여 다음과 같은 작업을 수행할 수 있도록 빠른 명령 세트를 만들고 싶습니다.
cd /path/to/folder/of/symlink
sudo rm -f symlink
sudo ln -s /new/path/of/symlink
cd /new/path/of/symlink
나는 소프트웨어가 중앙 위치에 보관되어 있고 소프트웨어가 특정 실행 경로에 의존하기 때문에 Subversion repo 지점(또는 다른 모든 것)에서 작업하여 생성된 문제를 해결하기 위해 심볼릭 링크를 사용하는 회사에서 일하고 있습니다. 내 딜레마는 정기적으로(하루에 여러 번) 다양한 분기와 트렁크 사이를 앞뒤로 전환해야 하는 경향이 있다는 것입니다. 그래서 제가 하고 싶은 것은 최소한 터미널에서 실행할 수 있는 스크립트 유형을 만들고 고유한 명령 예를 입력하는 것입니다.
./subchange trunk
또는
./subchange branch1
전환해야 하는 폴더별로 위의 내용을 하드코딩하거나 각 폴더에 대해 고유 식별자를 만들어 내 삶을 조금 더 쉽게 만드는 데 신경 쓰지 않지만 실제로 스크립트를 만드는 방법을 잘 모르겠습니다. 이를 사용자 정의 명령으로 사용할 수 있거나 Linux에서 작동하려면 어떤 종류의 스크립팅을 사용해야 합니까? 따라서 이 시점에서는 어떤 조언이나 도움이라도 좋을 것입니다.
답변1
스크립트가 실행 가능하고 해당 상위 디렉터리가 에 있으면 $PATH
해당 스크립트를 명령으로 사용할 수 있습니다. 예를 들어 언급한 명령으로 bash 스크립트를 만들 수 있습니다.
#!/bin/bash
cd /path/to/folder/of/symlink
sudo rm -f symlink
sudo ln -s /new/path/of/symlink
cd /new/path/of/symlink
그런 다음 이를 파일로 저장하고 를 사용하여 subchange
실행 가능하게 만들 수 있습니다 chmod +x subchange
. 내 시스템 /tech/scripts
에 내 에 추가하는 스크립트 디렉터리(예: )가 있습니다 $PATH
. 환경 변수가 , 또는 유사한 파일 $PATH
에 설정되는 경우가 많습니다 . 다음을 수행하여 디렉터리를 추가할 수 있습니다.~/.profile
~/.bashrc
/etc/bashrc
export PATH=/tech/scripts:$PATH
이를 시작 파일에 추가한 경우 셸을 다시 시작하거나 소스를 제공해야 합니다(예: source ~/.bashrc
). 이제 명령줄에서 를 사용할 수 subchange
있으며 해당 명령이 실행됩니다. 명령에 인수를 추가하려면 연산자를 사용할 수 있습니다 $1
. Bash에서 이것은 첫 번째 인수를 의미하므로 그렇게 하면 subchange trunk
가 $1
됩니다 trunk
. 그런 다음 필요에 따라 이를 스크립트에 추가할 수 있습니다.
#!/bin/bash
cd /path/to/folder/of/symlink
sudo rm -f symlink
sudo ln -s /new/path/$1/symlink
cd /new/path/$1/symlink
#!
파일 상단에 있는 것을오두막(그녀는 움직인다... 그녀는 움직인다...). 유닉스 시스템의 스크립트의 경우 다음 명령을 실행할 바이너리를 시스템에 알려줍니다. 이 경우에는 /bin/bash
이 파일을 bash 명령으로 실행하고 bash 바이너리가 /bin
. 하지만 다른 언어를 지정하고 해당 바이너리를 가리킬 수 있습니다.