나는 이것을 사용하여 현지 시간을 구성합니다.
dpkg-reconfigure tzdata
ncurses 인터페이스입니다. 나는 이것을 프로그래밍하는 방법을 찾고 있습니다. 사용자 인터페이스 없이 ncurses를 실행할 수 있는 실제 방법이 있나요?
쉘 명령을 통해 현지 시간을 변경하는 방법은 무엇입니까?
답변1
쉘 명령을 통해 시간대를 변경하고 싶다고 가정합니다.
timedatectl
귀하의 시스템에 있습니까?
만일이 경우라면:
timedatectl status
현재 설정이 표시됩니다.
timedatectl list-timezones
사용 가능한 시간대를 표시합니다.
timedatectl set-timezone Antarctica/Mawson
설정하세요.
노트:RTC가 현지 시간으로 구성된 경우 RTC 시간도 업데이트됩니다.
답변2
사용자 인터페이스 없이 ncurses를 실행할 수 있는 실제 방법이 있나요?
echo Antarctica/Mawson >/etc/timezone
dpkg-reconfigure -f noninteractive tzdata
예, 쉘 명령을 생성할 수 있습니다:
sh -c 'echo Antarctica/Mawson >/etc/timezone && dpkg-reconfigure -f noninteractive tzdata'
:)
하나 있다허점In tzdata
: 특정 값은 다음에 의해 정규화됩니다 dpkg-reconfigure
.
echo 'US/Central' >/etc/timezone
dpkg-reconfigure -f noninteractive tzdata
# Current default time zone: 'America/Chicago'
echo 'US/Eastern' >/etc/timezone
apt-get install --reinstall tzdata
# Current default time zone: 'America/New_York'
답변3
제가 매번 취하는 접근 방식은 다음과 같습니다.
# /bin/ln -fs /usr/share/zoneinfo/Asia/Novosibirsk /etc/localtime
Linux부터 BSD 제품군까지 모든 곳에서 잘 작동합니다.
답변4
expect
대화형 명령이 있는 경우 항상 프로그램을 사용할 수 있는 옵션이 있습니다 .
#!/usr/bin/expect -f
set timeout 360
spawn dpkg-reconfigure tzdata
expect "Geographic area:"
send -- "2\r"
expect "city or region"
send -- "134\r"
이는 표준 출력에서 "expect"의 문자열을 찾은 다음 "send"의 문자열을 표준 입력으로 보냅니다.