2010-02-18 3 views
3

Cygwin 사용자가 여기 있습니다. (적절한 솔루션이 있다면 K/Ubuntu로 옮길 것입니다. 나는 굴복하고 하이픈을 사용, 위의 변수 SAD에 공백을 사용하는 수많은 시도 후BASH : 어떻게 당신은 "분할"date 명령합니까?

SAD=(`date +%A-%B-%d-%Y`) 
DUB=(`date -u +%k:%M`) 
printf "Today's Date is: ${SAD}.\n" 
printf "Dublin time is now ${DUB}. (24-Hour Clock)\n" 

:

나는 다음과 같은 내의 .bashrc에 오신 것을 환영합니다 메시지가 있습니다. 그러나 나는이 대역 해결책에 만족스럽지 않다. 이 문제는 내가 인용 한 공간, \ s 또는 이와 유사한 escape 태그를 사용할 때마다 날짜가 인 GNU 맨 페이지의 해당 섹션에 나열된 변수와 함께 연도의 변수가 무시되었거나 또는 오류를 반환했습니다. 내가해야 할 일은 날짜에 의해 반환 된 전체 문자열에 의존하는 것이 아니라 위의 코드에서 순서를 유지하는 것입니다.

필자가 작성한 것처럼 Welcome 메시지의이 코드 주위에 IFS를 설정하면 작동하지 않을 수 있습니다. 나중에 기본값으로 반환하면 (위의 내용은 68 줄의 13-17 줄에 나타납니다 .bashrc). 그러나, 나는 그것을 어떻게 하는지를 기억할 수 없으며 그것이 효과가있을 것이라고 나는 확신 할 수 없다.

일반적으로 말하면, .bashrc 파일은 유효한 BASH 구문입니다. 그렇지 않습니까? 내 것은 분명히 내가 직접 작성했거나 다른 출처에서 테스트 한 스크립트와 흡사하다. 모든 내가 부족, 나는 가정이 메시지 블록 주위의 필드 분리를 설정하고 해제하기위한 코드입니다.

솔루션을 제공하는 사람은 누구나 저뿐만 아니라 쉘 스크립팅 세계에서 첫 번째 (또는 열세 번째에서 열 여섯 번째) 단계를 수행하는 인터넷의 다른 상대적인 초보자에게도 호의적입니다.

BZT

답변

4

.bash_profile 인쇄

Today's Date is: Thursday February 18 2010. 
Dublin time is now 12:55. (24-Hour Clock) 

SAD=$(date "+%A %B %d %Y") 
DUB=$(date -u +%k:%M) 
echo "Today's Date is: ${SAD}." 
echo "Dublin time is now ${DUB}. (24-Hour Clock)" 

퍼팅 내가 만약 당신이 원하는 생각합니다.

+0

내가 인터넷에서 어디 올린 질문에 대한 빠른 응답. 그들은 (NPI)를 적재했다 그러나 StackOverflow의의 광고 서버의 지연, 나는 그들을 보았다 수 있습니다. 나 자신 외에 모든 응답자 들께 감사드립니다. BZT – silversleevesx

1

문제는 배열 선언입니다.

SAD=(date +%A-%B-%d-%Y) 그냥 당신이 요소를 0으로 문자열 "날짜"퍼팅과 의미 '+ % A- % B- % D- % Y "요소 1. 참조로 자신을

$ SAD=(date +%A-%B-%d-%Y) #<-- this is an array declaration 
$ echo ${SAD[0]} 
date 
$ echo ${SAD[1]} 
+%A-%B-%d-%Y 

당신이 경우에 대한 공간을 얻으려면 예

$ SAD=$(date +%A-%B-%d-%Y) 
$ echo ${SAD} 
Thursday-February-18-2010 
0

, $(..)를 사용하여 변수에있을 "날짜"명령의 값을 원하는, 당신은 하나의 문자열의 너무 date에 인수를 인용 할 필요가있다. 당신이 정말로 그들을 평가했다 할 무엇을 의미하는지 경우에도 잘못, 배열로 SADDUB를 선언하고 있습니다. 이 시도 :

[/tmp]> $(date "+%A %B %d, %Y") 
Thursday February 18, 2010 
0

date +%A\ %B\ %d\ %Y

+0

따옴표를 사용할 수 있습니다. – ghostdog74

0

나는 작동 조합을 발견
SAD=$(date "+%A %B %d %Y")
echo $SAD
Thursday February 18 2010

또 다른 인스턴스를 때

그것은 질문이 어디 넣어하는 방법을 알고하는 데 도움이
  • 에게 물어 지불
    1. 큰 따옴표.
      날짜은 분명히 인용 된 공간에서 알 수 없지만 Bash는 그렇습니다.
      그것은 "오른쪽 귀에 속삭이는"문제입니다.

  • 당신에게 ghostdog74 감사드립니다.

    BZT