bash 스크립트는 마지막 경로 변수를 선택합니다

bash 스크립트는 마지막 경로 변수를 선택합니다

저는 첫 번째 bash 스크립트를 작성하고 있습니다. GitHub에 모든 저장소를 설치하고 있습니다.

warpInLocations=("[email protected]:acc/toolkit.git" "[email protected]:acc/sms.git" "[email protected]:acc/boogle.git" "[email protected]:acc/cairo.git")

제가 설치했을 때의 모습입니다.

echo "warping in toolkit, sms, boogle and cairo"
for repo in "${warpInLocations[@]}"
do
  warpInDir=$(echo ${warpToLocation}${repo} | cut -d'.' -f1)
  if [ -d "$warpToLocation"]; then
    echo "somethings in the way.. $warpInDir all ready exists"
  else
    git clone $repo $warpInDir
  fi

done

여기 이 줄은 Twist 위치의 전후에 orso toolkit라는 폴더를 제공하고 싶지만 선택 중입니다. 아마도 이것이 이후이기 때문일 것입니다.sms/.git@github.

저장소에서 이름을 선택하도록 하려면 어떻게 해야 합니까?

답변1

dir=$(basename [email protected]:acc/toolkit.git .git)

$dir으로 설정됩니다 toolkit.

명령도 유용합니다 dirname.

답변2

이 작업은 두 단계로 수행해야 합니다.

[email protected]:acc/toolkit.git
dir=${dir#*/}                       # Remove everything up to /
dir=${dir%.*}                       # Remove everything from the .

답변3

Bash에서는 정규식을 사용하고 대괄호를 캡처할 수도 있습니다.

for repo in "${warpInLocations[@]}"; do
    [[ $repo =~ /([^.]+)\. ]] && dir=${BASH_REMATCH[1]}
    warpInDir=${warpToLocation}$dir
    # ...

관련 정보