이 명령의 중요성은 무엇입니까 export COLUMNS
?
내가 아는 것은 그것이 전역 변수라는 것뿐입니다.
*nix 스크립트 시작 부분에서 자주 볼 수 있습니다.
답변1
현재 터미널 창의 너비(ASCII 문자)입니다.
에서 man bash
:
COLUMNS
Used by the select builtin command to determine the terminal
width when printing selection lists. Automatically set upon
receipt of a SIGWINCH.
더 일반적인 것들도 있습니다 ksh
:
COLUMNS
If this variable is set, the value is used to define the
width of the edit window for the shell edit modes and for
printing select lists.
실제적인 부분에서는 가상 터미널 창의 크기가 변경되면 이 변수의 값도 변경된다는 점에 유의하세요. (위의 내용이 SIGWINCH
활성 쉘로 전송되는 경우입니다.)
답변2
이 답변은 Solaris, HP-UX, AIX, BSD, Linux(어떤 배포판?) 등 어떤 유형의 시스템에서 이 메시지가 표시되는지 말하지 않았기 때문에 추측입니다.
환경 변수 ROWS 및 COLUMNS를 설정하는 데 사용되는 저주받은 방식으로 사용자와 상호 작용하는 셸 스크립트입니다.
Curses 스타일의 상호 작용은 윈도우 시스템 이전으로 거슬러 올라갑니다. 따라서 이러한 프로그램은 일반적으로 xterm 윈도우의 크기를 알기 위해 아무 것도 하지 않습니다. 따라서 많은 저주 기반 프로그램은 ROWS 및 COLUMNS 환경 변수를 사용하여 필드와 레이블을 배치하는 방법을 결정합니다.
때때로 쉘이 xterm에서 실행을 시작할 때 ROWS 및 COLUMNS 환경 변수를 찾아 설정하려고 시도합니다. 많은 구형 SunOS 및 Solaris 시스템에서는 이 작업을 수행하기 위해 /etc/profile을 사용합니다. 때로는 SIGWINCH(적어도 SunOS 및 Solaris에서는)가 ROWS 및 COLUMNS 변수를 설정하는 데 사용됩니다. 공급업체는 xterm을 어리석은 방식으로 수정했으며 xterm에서 실행되는 프로세스 그룹에 SIGWINCH를 전달하는 것을 중단하는 경우가 많았으며 저주 스타일 상호 작용은 정말 나빠 보였습니다.
답변3
말 그대로 일부 응용 프로그램에 터미널 너비에 해당하는 문자 위치 수를 알려줍니다. 거의 모든 터미널은 일반 그리드를 사용합니다.철사그리고목록.
LINES
처음에는 COLUMNS
(1980년경)내부 변수이후 vi
와 curses
.쉘 변수이름이 소개됩니다. 그들이 언제가능한SunOS4는 이미 이를 지원하고 있으며 매뉴얼 페이지에 언급된 유일한 내용은 저주와ls
:
출력 형식을 결정하려면
-C
,-x
, 그리고-m
옵션,/usr/5bin/ls
환경 변수를 사용하고,COLUMNS
출력 라인에서 사용 가능한 문자 위치 수를 결정합니다. 이 변수가 설정되지 않은 경우용어 정보데이터베이스는 환경 변수를 기반으로 열 수를 결정하는 데 사용됩니다.TERM
. 이 정보를 얻을 수 없는 경우 80개의 열이 가정됩니다.
즉, 이 기능은 System V에서 제공되었으며 나중에 도입된 것 같습니다.이 약속은 1989년, BSD 버전의 경우 ls
.
SVr4curses(및 그 후속 X/Open Curses)는 다음의 사용을 문서화합니다.환경다음에 따라 터미널 설명의 터미널 크기 값을 재정의하는 데 사용할 수 LINES
있는 변수COLUMNS
use_env
기능. 이것ncurses 매뉴얼 페이지이 기능을 문서화하세요.
마찬가지로 쉘 프로그래밍에 대한 소개도 System V에서 나온 것으로 보입니다.ksh
. SIGWINCH
이러한 변수를 언제, 어떻게 결합하는지는 파악하기 어렵고 논란의 여지가 있을 수 있습니다. 그러나현재의이 껍질 세트가 준비되어 있습니다.쉘 변수(아니요 환경 변수) 응답 SIGWINCH
: ksh93
, . (다시 한번 ) 설정하지 bash
않은 것 같습니다 . Solaris 10을 확인했는데 변수가 설정되지 않았습니다.zsh
SIGWINCH
fish
ksh88
bash 1.13(1993년 9월 출시)의 이전 변경 로그에는 이 SIGWINCH
기능이 1993년 3월에 추가되었다고 나와 있습니다.Sven Maschek의 페이지ksh93은 같은 해 말쯤에 출시된 것으로 추정됩니다.
쉘 변수에 값을 배치하면 쉽게 내보내고(환경 변수로 변경) 특정 프로그램의 동작을 수정할 수 있습니다. 그러나 이 변수가 있는 이유는 단자 치수를 결정하기 어려울 때 유용하기 때문입니다.