호스트 이름을 기반으로 경로를 찾는 스크립트를 실행하려고 합니다. 예를 들어 호스트 이름이 반환되면 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 Expansion
bash 매뉴얼 페이지 섹션을 참조하세요 man bash
.