폴더 이름을 변수로 사용하여 각 폴더에 대해 명령을 반복하는 스크립트를 어떻게 실행할 수 있습니까?

폴더 이름을 변수로 사용하여 각 폴더에 대해 명령을 반복하는 스크립트를 어떻게 실행할 수 있습니까?

저는 rclone을 사용하고 있으며 해당 리모컨과 이름을 공유하는 폴더를 생성하여 자동으로 리모컨을 마운트하는 스크립트를 작성하고 싶습니다.

내 디렉터리 구조는 /home/user/remotes/마운트 지점으로 사용되는 총 5개의 폴더입니다.

실행 시 원격 디렉터리를 참조하고 각 폴더에 대해 설치 명령을 실행하는 스크립트를 작성하는 방법을 배우고 싶습니다.

스크립트에 의해 생성된 명령은 다음과 같습니다.

rclone mount FolderName1: /home/user/remotes/FolderName1 --flags

rclone mount FolderName2: /home/user/remotes/FolderName2 --flags

이상적으로는 스크립트가 각 폴더에 대해 위의 명령을 자동으로 생성하므로 앞으로 해야 할 일은 마운트 지점으로 사용할 폴더를 만드는 것뿐입니다. (저는 스크립트를 cron 작업으로 실행하여 원격에서 스캔하도록 할 계획입니다. 목차).

이를 수행할 수 있는 방법이 있습니까?

답변1

가장 쉬운 방법은 이미 사용하고 있는 명령을 스크립트에 넣는 것입니다.

#!/bin/sh
rclone mount remote:path/to/files_1 /path/to/local/mount_1
rclone mount remote:path/to/files_2 /path/to/local/mount_2
rclone mount remote:path/to/files_3 /path/to/local/mount_3

자동방식은 좀 까다롭네요

#!/bin/sh

# get a list of directory names
dirs=$(rclone lsf --dirs-only remote:path/to/dirs)

# assuming you do not have a directory with a space in a name
for dir in $dirs
do
   # ensure you have a mount point
   mkdir -p /path/to/local/$dir

   # and mount it
   rclone mount remote:path/to/$dir /path/to/local/$dir
done

관련 정보