쉘 스크립트에서 파일 생성

쉘 스크립트에서 파일 생성

빈 .txt 파일을 생성해야 하는 경로와 변수가 포함된 셸 스크립트를 생성하고 싶습니다.

나는 시도한다:

**

path=directory part
touch Test{1..100}.txt

**

하지만 이 100개의 파일은 스크립트와 동일한 디렉터리에 생성됩니다. 이 문제를 해결하는 데 도움을 주실 수 있나요?

답변1

작은 의견: path변수 이름과의 충돌을 고려하면 아마도 좋은 선택이 아닐 것입니다 PATH.편집하다:@Paul_Pedant가 주석에서 지적했듯이 in zsh변수 는 path예약되어 있으며 $PATH에 디렉터리를 보유하는 문자열 배열입니다. 예를 들어 일부 다른 쉘에는 bash그러한 예약이 없습니다.


당신은 다음과 같은 것을 할 수 있습니다

FILES_HERE=/path/to/dir
touch $FILES_HERE/Test{1..100}.txt

가변 개수의 파일을 만들려면 해당 파일을 루프 touch에서 사용할 수 있습니다.whilehttps://stackoverflow.com/a/31365662/3856731


인수를 취하고 거기에 파일을 저장하는 스크립트를 갖는 것이 유용할 수 있습니다. 스크립트가 인수 없이 호출되면 기본값은 $PWD입니다.

#!/bin/bash

touch ${1:-.}/Test{1..100}.txt

(답변 아래 구문 설명.) 다른 이름으로 저장하고 test.sh호출했다고 가정하면 chmod +x test.sh다음을 수행할 수 있습니다.

$ ./test.sh

100개의 빈 파일을 현재 디렉터리에 넣습니다. 아니면 전화하세요

$ ./test.sh ~/Documents

그것들을 쓰세요 ~/Documents.

편집하다:
구문 설명:"설정되지 않았거나 빈 문자열과 같으면 ${1:-.}이 스크립트의 첫 번째 명령줄 인수( $1) 또는 기본값 .(일명 $pwd)으로 바꾸십시오"를 의미합니다. 실행 가능한 스크립트를 호출하면 제공한 매개변수가 자동으로 열거됩니다.$1''

./script.sh $1 $2 $3 $4...

관련 정보