3가지 명령어를 조합하여 실행하는 방법

3가지 명령어를 조합하여 실행하는 방법

호스트 이름을 기반으로 경로를 찾는 스크립트를 실행하려고 합니다. 예를 들어 호스트 이름이 반환되면 computer1실행하고 싶습니다 path/to/Computer1.py(여기서 path/to는 항상 동일한 경로입니다).

경로 부분은 변수를 사용하여 저장한 다음 호출하고 연결할 수 있다고 생각합니다. 이제 문자열을 제목 케이스로 변환하려고 하는데 이것이 작동하는 것 같습니다.

echo "computer1.py" | awk '{printf("%s%s\n",toupper(substr($0,1,1)),substr($0,2))}'

hostname저는 bash를 처음 접했고 현재 이러한 구성 요소(스크립트 이름에 따른 스크립트 경로 ) 를 연결하고 실행하는 방법에 대해 고민하고 있습니다 .

답변1

Bash 버전 4에는 대소문자 수정 연산자가 내장되어 있으며 ^, ,최신 버전의 bash 셸을 사용하는 경우 간단한 문자열 조작을 위해 awk와 같은 외부 프로그램을 사용하지 않아도 됩니다. 특히, 만약

name=$(hostname)

그리고

path="path/to/"

그 다음에

"${path}${name^}"

문자열은 첫 글자를 name대문자로 연결해야 합니다. Parameter Expansionbash 매뉴얼 페이지 섹션을 참조하세요 man bash.

관련 정보