라이온의 배쉬에 어떤 변화가 있었습니까?


1

나는 몇 가지 작업을하고있다. bash 로컬 로그인 스크립트를위한 쉘 스크립트이며 Leopard와 Snow Leopard에서는 잘 작동하지만 Lion에서는 실패합니다. 차이가있는 곳이 있다면 나는 궁금했다. bash 라이온?


5
이것은 매우 모호한 질문입니다. 스크립트의 전체 또는 일부를 게시하고 수행하려는 작업을 설명하는 것이 가장 좋습니다.
macaco

나는 투표가 필요하다고 생각하지 않는다. BASH 버전간에 차이점이 무엇인지 알 수있는 방법이 있습니다.
John

내 bash 스크립트에서 다음 변수를 사용하려고했습니다. username = "$ (whoami)"
John

1
@ 존 내가 시도 u="$(whoami)"; echo $u 10.6과 10.7에서 같은 결과를 얻었다. 스크립트 소스를 게시하면 괜찮은 답변을 얻을 수 있습니다. 또한, 주요 질문에 답하기 위해 10.7과 10.6의 최신 시스템 업그레이드는 어쨌든 동일한 버전의 bash를 갖게됩니다. 3.2.48(1)-release
ocodo

답변:


5

bash에서 명령 echo $BASH_VERSION bash의 버전을 보여줍니다. 그런 다음 변경된 내용을 변경 로그 파일, bash의 경우입니다. CHANGES. (소스에 더 완벽한 변경 로그가 있지만 bash를 작성하고 유지 관리하는 사람들에게는 주로 관심이 있습니다.)

컴퓨터가 최신 버전 인 경우, 그들은 같은 버전을 실행할 것입니다. . 스크립트에 사용 된 모든 외부 프로그램도 최신 버전인지 확인하십시오. 스크립트는 이러한 프로그램 중 하나가 다른 출력을 생성하므로 다르게 동작 할 수 있습니다.

당신은 당신의 스크립트가 무엇을하고 있는지를 볼 수 있습니다. bash -x /path/to/script. 그만큼 -x 옵션은 bash print가 실행되는 각 명령에 대한 추적을 작성합니다. 넣을 수도 있습니다. set -x 추적을 켜는 스크립트에서 set +x 꺼 버려.


1
bash --version 너에게 같은 결과를 줄 것이다. echo $BASH_VERSION btw. +1에 대해 bash -x script
ocodo

7

SnowLeopard 또는 Lion 설치시 최신 소프트웨어 업데이트가 설치되었다고 가정하면 Bash 버전은 동일합니다. 3.2.48(1)-release.

SnowLeopard에서 어떤 경우 32 비트 컴파일을하는 반면, Lion에서는 (기본적으로) 64 비트입니다.

명령 username="$(whoami)" ~이다. 매우 이렇게하면 bash에서 결과가 변경되지 않을 것입니다. 이렇게하면 무분별한 무서운 좀비 sysadmin 유형의 빠른 이동과 뇌의 삼키기 분노가 발생할 수 있습니다.

(그런데 때때로 시스템 관리자가 거의 언데드가 아니었지만 그 반대의 경우도 있음에도 불구하고 설명은 극적인 효과를 위해 추가되었으며 시스템 관리자에게는 불쾌감을주지 않았습니다. 나는 실제 언데드 시스템 관리자와 그 가족에게 진심으로 사과드립니다. 나는 그들이 즉시 샷건을 움켜 잡고 침실 문을 바리케이드하도록 촉구한다. 꼭 두 번 두드려라.)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.