2
ESXi 셸에서 bash 셸 스크립트를 실행하려고했습니다.POSIX 환경에서 bash 쉘 스크립트를 어떻게 실행할 수 있습니까?
Think ESXi는 posix와 호환되며 posix 컴파일러는 많은 구문 오류를 발생시킵니다.
POSIX 모드에서 실행할 때 누군가가 대답을
ESXi 셸에서 bash 셸 스크립트를 실행하려고했습니다.POSIX 환경에서 bash 쉘 스크립트를 어떻게 실행할 수 있습니까?
Think ESXi는 posix와 호환되며 posix 컴파일러는 많은 구문 오류를 발생시킵니다.
POSIX 모드에서 실행할 때 누군가가 대답을
manual 목록 변경된 행동이 있으면 알려 주시기 바랍니다. 그에 따라 스크립트를 수정해야합니다.
$PATH
을 새 위치를 찾을 수 :
다음은 POSIX mode
이 적용되는 경우 변경된 것입니다. 'shopt -s checkhash
'과 함께 사용할 수도 있습니다.
Done(status)
'입니다.Stopped(signame)
'입니다. 여기서 signame은 SIGTSTP
입니다.bg
내장 명령은 배경이 현재 작업인지 아니면 이전 작업인지 여부를 나타내는 표시가없는 백그라운드에 배치 된 각 작업을 설명하는 데 필요한 형식을 사용합니다.PS1
및 PS2
이력 번호 ‘!’
‘!’
의 확장 및 ‘!!’
에 활성화되고, 변수는 확장 promptvars
옵션의 설정에 관계없이 PS1
및 PS2
의 값들에 수행된다.$ENV
) 실행됩니다.~/.sh_history
(기본값은 $HISTFILE
)입니다.kill -l
'의 출력은 모든 신호 이름을 'SIG
'접두어없이 공백으로 구분하여 한 줄에 인쇄합니다.kill
은 'SIG
'접두어가 붙은 신호 이름을 허용하지 않습니다..
인 경우 종료됩니다..
또는 source
내장 명령 읽을 스크립트에 구문 오류, 또는 eval
내장에 의해 처리 된 문자열의 경우.${...}
확장을 구문 분석하고 확장 할 때 작은 따옴표는 더 이상 특수하지 않으며 연산자가 패턴 제거를 수행하도록 정의 된 연산자가 아니면 닫는 중괄호 나 다른 특수 문자를 인용 할 수 없습니다. 이 경우 일치하는 쌍으로 나타나지 않아도됩니다.‘-’
으로 시작하는 경우 파서는 예약어로 시간을 인식하지 않습니다.export
및 readonly
내장 명령은 POSIX에서 요구하는 형식으로 출력을 표시합니다.trap
내장 신호는 신호 이름 앞에 SIG
없이 신호 이름을 표시합니다.trap
builtin은 가능한 신호 지정에 대한 첫 번째 인수를 검사하지 않으며 해당 인수가 유효한 숫자 일 경우에만 신호 처리를 원래 처리로 되돌립니다. 사용자가 주어진 신호에 대한 핸들러를 원래 처리로 재설정하려면 ‘-’
을 첫 번째 인수로 사용해야합니다..
및 source
기본 제공 업체는 PATH
을 검색하여 찾을 수없는 경우 파일 이름 인수에 대해 현재 디렉토리를 검색하지 않습니다.-e
옵션 값을 상속합니다. POSIX 모드가 아닌 경우 Bash는 이러한 서브 쉘에서 -e
옵션을 지 웁니다.alias
내장 명령에 별칭 정의가 표시되면 -p
옵션이 제공되지 않는 한 별칭 정의와 함께 별칭 정의가 표시되지 않습니다.set
내장 옵션을 옵션없이 호출하면 쉘 함수 이름과 정의가 표시되지 않습니다.set
내장 옵션을 옵션없이 호출하면 결과에 인쇄되지 않는 문자가 포함되어 있어도 셸 메타 문자가 포함되어 있지 않으면 따옴표없이 변수 값이 표시됩니다.$PWD
에서 구성되고 인수로 제공된 디렉토리 이름이 기존 디렉토리를 참조하지 않으면 cd
이 실제 모드로 폴백하지 않고 실패합니다.pwd
내장 명령은 -P
옵션을 사용하여 파일 시스템을 확인하라는 메시지가 표시되지 않더라도 인쇄 된 값이 현재 디렉토리와 동일한 지 확인합니다.fc
내장 명령에는 기록 항목이 수정되었는지 여부가 표시되지 않습니다.fc
이 사용하는 기본 편집기는 ed
입니다.$PATH
에있는 유일한 이름의 파일 인 경우 해당 파일을 실행하려고 시도합니다.$VISUAL
과 $EDITOR
을 검사하는 대신 vi 편집 모드에서 'v'명령이 실행될 때 vi 편집기를 직접 호출합니다.xpg_echo
옵션을 사용하면 Bash는 echo 옵션을 해석하지 않습니다. 이스케이프 문자가 변환 된 후 각 인수가 표시됩니다.ulimit
내장자는 -c
및 -f
옵션에 대해 512 바이트의 블록 크기를 사용합니다.SIGCHLD
에 트랩을 설정할 때 SIGCHLD
이 도착해도 wait
내장 명령이 중단되지 않고 즉시 반환됩니다. trap
명령은 종료되는 각 하위에 대해 한 번 실행됩니다.
POSIX 환경에서 실행하기 전에 스크립트를 테스트하십시오. 'bash --posix scriptname'을 사용하여 동작을 시뮬레이트 할 수 있습니다. – devnull
http://mywiki.wooledge.org/Bashism –
& ESXi에서는 bash가 같지 않습니다. 그것은 'busybox' bash 쉘입니다. – anishsane