이것은 Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 공급자에서 실행할 수 있는 명령 lksh입니다.
프로그램:
이름
lksh — mksh에 구축된 레거시 Korn 쉘
개요
lksh [-+abCefhiklmnprUuvXx] [-+오 고르다] [-c 현 | -s | 파일 [인수 ...]]
기술
lksh 레거시 셸 스크립트를 실행하기 위한 전용 명령 인터프리터입니다. 그것은이다
에 구축 mksh; 스크립팅 언어에 대한 자세한 내용은 매뉴얼 페이지를 참조하십시오. 그것은이다
스크립트를 다음으로 이식하는 것이 좋습니다. mksh 레거시 또는 바보 같은 POSIX에 의존하는 대신
MirBSD Korn Shell 스크립팅 언어가 훨씬 더 일관성이 있기 때문입니다.
호출하는 것이 좋습니다. lksh 적어도 -o POSIX 옵션, 그렇지 않은 경우
둘 다 과 -o sh, POSIX 표준(이는
아마도 당신이 사용하는 이유 lksh 위에 mksh 처음에) 또는 레거시 스크립트를 각각 사용합니다.
유산 모드
lksh 현재 다음과 같은 차이점이 있습니다. mksh:
· 대화식 사용에 대한 명시적인 지원이나 명령줄 편집 또는
히스토리 코드. 따라서, lksh 사용자의 로그인 쉘로도 적합하지 않습니다. 사용하다 mksh
대신.
· KSH_VERSION 문자열 식별 lksh "MIRBSD KSH"대신 "LEGACY KSH"로. 메모
버전 문자열의 나머지 부분은 두 쉘 버전 간에 동일하며,
동작과 차이점은 버전 간에 변경될 수 있습니다. 함께 제공되는 매뉴얼 페이지를 참조하십시오.
mksh(1) 이 문서가 적용되는 버전의 경우.
· lksh POSIX 산술을 사용하는데 여기에는 몇 가지 의미가 있습니다.
산술은 호스트 ISO C입니다. 긴 데이터 형식. 부호 있는 정수 랩어라운드가 정의되지 않음
행동; 이것은 의미합니다 ...
$ 에코 $((2147483647 + 1))
...은(는) 예를 들어 시스템의 모든 파일을 삭제할 수 있습니다(그림은
32비트가 아닌 시스템에서는 규칙이 적용되지 않습니다. 모듈로 연산 결과의 부호
하나 이상의 음수 피연산자가 지정되지 않았습니다. 음수에 대한 시프트 연산
지정되지 않았습니다. 가장 큰 음수를 -1로 나누는 것은 정의되지 않은 동작입니다.
컴파일러는 정의되지 않은 동작인 경우 모든 데이터를 삭제하고 시스템을 충돌시킬 수 있습니다.
발생합니다(위의 예 참조).
· lksh 스크립트에 전통적인 XNUMX개의 파일 설명자만 제공합니다.
· 회전 산술 연산자는 사용할 수 없습니다.
· 시프트 산술 연산자는 두 번째 피연산자의 모든 비트를 고려합니다. 만약 그들이
허용된 정밀도를 초과하면 결과가 지정되지 않습니다.
· GNU 세게 때리다 stdout 및 stderr을 한 번에 리디렉션하는 확장자 &>는 구문 분석되지 않습니다.
· XNUMXD덴탈의 mksh 명령줄 옵션 -T 사용할 수 없습니다.
· 않는 한 세트 -o POSIX 활성, lksh 항상 다음과 같은 구성에 대해 기존 모드를 사용합니다.
$ 세트 -- $(getopt ab:c "$@")
$ 에코 $?
POSIX는 이것을 0으로 표시하도록 요구하지만 기존 모드는 다음에서 오류 수준을 통과합니다.
전에, getopt(1) 명령.
· AT&T UNIX와 달리 KSH, mksh in -o POSIX or -o sh 모드 lksh 파일을 보관하지 마십시오
설명자 > 2 하위 프로세스의 비공개.
· 로 정의된 함수 기능 예약어는 쉘 옵션을 공유합니다(세트 -o)
지역적으로 범위를 지정하는 대신.
onworks.net 서비스를 사용하여 온라인으로 lksh 사용