![쉘 스크립트를 사용하여 반복적인 프로세스를 자동화하는 방법 [닫기]](https://linux55.com/image/117936/%EC%89%98%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EB%B0%98%EB%B3%B5%EC%A0%81%EC%9D%B8%20%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EB%A5%BC%20%EC%9E%90%EB%8F%99%ED%99%94%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%20%5B%EB%8B%AB%EA%B8%B0%5D.png)
따라서 기본적으로 명령을 실행해야 합니다. 예를 들어 명령이 $ exampleCommand var1_1
완료된 후에 실행한 다음 등을 $ exampleCommand var1_2
실행합니다 var2_1
. 이 명령을 50-60개의 파일에서 실행하고 있으며 각 파일의 크기는 90+GB이므로 수동으로 수행하는 것은 불가능하며 나는 그런 일을 자동화하려고 시도한 적이 없습니다. 이 작업을 수행하는 방법에 대한 몇 가지 팁을 알려주시면 감사하겠습니다. .sh 파일을 생성한 다음 사용 중인 서버에서 실행하는 것 같나요?
답변1
이는 올바른 방향을 알려줄 것입니다.
$ for i in {1..3}; do for j in {x..z}; do echo ${i}_${j}; done; done
1_x
1_y
1_z
2_x
2_y
2_z
3_x
3_y
3_z
답변2
귀하가 요청한 질문은 약간 글로벌하며 특정 작업을 자동화하는 방법은 여러 가지가 있습니다. 이 문제는 일반적으로 다양한 파일 이름이나 정규식 일치 패턴에서 발생합니다. 스크립트를 실행하기 전에 파일을 백업하십시오.
어떤 방향으로 나아가려면 다음 예를 참조하세요.
array=(file1 file2 file3)
for i in "${array[@]}"; do
echo "$i"
done
user@workdir: # cd /dir && ls > ../files.list
main() {
local list='/workdir/files.list'
for item in $(cat "$list"); do
func_read "$item"
done
}
func_read() {
local var="$1"
[[ ! -d "$var" ]] && \
while read -r line; do
echo "$line"
done < "$var"
}
main