자주 방문하는 웹 페이지를 탐색하는 데 도움이 되는 함수를 zshrc 파일에 만들고 있습니다. 예를 들어 통화가 61b
시작됩니다.https://sp21.datastructur.es/, 61b lab6
열 예정이다https://sp21.datastructur.es/materials/lab/lab6/lab6, 그리고 61b proj2
열릴 것입니다https://sp21.datastructur.es/materials/proj/proj2/proj2. URL에서 or 를 사용할 수 있도록 lab6
or 의 하위 문자열을 생성해야 합니다 .proj2
lab
proj
function 61b() {
if [ -n "$1" ]; then
open https://sp21.datastructur.es/materials/??/$1/$1
else
open https://sp21.datastructur.es/
fi
}
내가 거기에 뭘 넣을까??. 나는 거의 모든 것을 시도했습니다.
답변1
더 복잡한 형식을 사용하여 많은 문자열 작업을 수행할 수 있습니다.매개변수 확장형태 또는 (또는 이들의 조합).${stuffPARAM}
${PARAMstuff}
예를 들어, ${1%%[0-9]##}
첫 번째 매개변수( $1
)는 숫자(와일드카드 패턴 [0-9]##
)는 ( ) 끝에서 제거됩니다 ${…%%…}
. setopt extended_glob
와일드카드 패턴이 작동하려면 이를 또는 함수 [0-9]##
에 넣어야 합니다 ..zshrc
function 61b() {
setopt local_options extended_glob unset
if [ -n "$1" ]; then
open https://sp21.datastructur.es/materials/${1%%[0-9]##}/$1/$1
else
open https://sp21.datastructur.es/
fi
}
[0-9]##
<->
대신 모든 범위의 숫자를 나타내는 를 사용할 수 있습니다 . ("숫자"는 10진수 표기법으로 표현된 음이 아닌 정수를 나타내므로 일련의 숫자와 동일합니다.)