"ABFD00" 및 "KASD02"와 같은 2개의 ID를 가진 2개의 폴더 이름이 있습니다.
이제 명령에서 사용하려면 폴더의 작은 부분을 변수(00 및 02)로 필요합니다. 좋다:
sapcontrol -nr $sid -function GetSystemInstanceList
답변1
출력을 변수에 할당한 다음 패턴 일치를 사용할 수 있습니다. 예를 들면 다음과 같습니다.
VAR1=ABCD01
echo ${VAR1##*[[:alpha:]]}
그러면 변수에서 모든 알파벳 문자가 제거되고 "01"이 인쇄됩니다.
답변2
노력하다
$ find . -name "[A-Z]*" -type d |
while read FN
do echo sapcontrol -nr ${FN##*[A-Z]} -function GetSystemInstanceList
done
sapcontrol -nr 00 -function GetSystemInstanceList
sapcontrol -nr 02 -function GetSystemInstanceList
답변3
몇 가지 특정 폴더의 마지막 두 문자만 필요한 경우 다음도 있습니다.
echo ${VAR1:(-2)}
또는 (@RudiC 확장) GNU 확장자가 있는 마지막 두 자리를 제외하고 숫자 없이 디렉토리를 선택하십시오.find
find . -type d -regex "[^0-9]*[0-9][0-9]" -exec sh -c 'echo sapcontrol -nr ${1:(-2)} -function GetSystemInstanceList' sh {} \;