당신은 해당 스크립트 상에 od -xcb
을해야 할 필요가 없습니다. 내 추측은 거의 틀림없이 잘못된 줄 끝 문자를 가질 것입니다.
나는이 제안 이유는 선 이유는
': not a valid identifierad: `var_name
이 의심 두 줄과 같습니다
.........................ad: `var_name
': not a valid identifier
가 함께 병합합니다 (.
문자를 덮어 뭔가를 나타내는 경우).
그 라인에서 변수
V
R
_
N
m
E
캐리지 리턴 오히려 더 정상보다 있었다면 경우 것
var_name
.
그것은 또한 Cygwin에서의 당신은 Cygwin에서 그냥 LF를 기대 어디 CR/LF를 사용하는 윈도우 편집기로 스크립트를 편집 할 때 문제가 종종있다 있기 때문에 결론을 가리키는 사실.
실제 스크립트에서 od -xcb
을 실행하면 하나 이상의 스크립트 행에 해당 Windows 줄 끝이 있음을 알 수 있습니다.
사실은, 난 그냥 단지 read
라인의 끝에 CTRL-M
을 넣어 우분투에 따라 본을 시험하고 출력 (약간 CTRL-M
보여주기 위해 수정)되었습니다 다른에서
[email protected]:~$ od -xcb qq.sh ; ./qq.sh
0000000 2123 622f 6e69 622f 7361 0a68 6365 6f68
# ! / b i n / b a s h \n e c h o
043 041 057 142 151 156 057 142 141 163 150 012 145 143 150 157
0000020 2d20 2065 4522 746e 7265 7920 756f 2072
- e " E n t e r y o u r
040 055 145 040 042 105 156 164 145 162 040 171 157 165 162 040
0000040 616e 656d 6120 646e 7020 6572 7373 5b20
n a m e a n d p r e s s [
156 141 155 145 040 141 156 144 040 160 162 145 163 163 040 133
0000060 4e45 4554 5d52 203a 635c 2022 720a 6165
E N T E R ] : \ c " \n r e a
105 116 124 105 122 135 072 040 134 143 042 040 012 162 145 141
0000100 2064 6176 5f72 616e 656d 0a0d 6365 6f68
d v a r _ n a m e \r \n e c h o
^^
144 040 166 141 162 137 156 141 155 145 015 012 145 143 150 157
0000120 2220 6f59 7275 6e20 6d61 2065 7369 203a
" Y o u r n a m e i s :
040 042 131 157 165 162 040 156 141 155 145 040 151 163 072 040
0000140 7624 7261 6e5f 6d61 2265 0a0a
$ v a r _ n a m e " \n \n
044 166 141 162 137 156 141 155 145 042 012 012
0000154
Enter your name and press [ENTER]: Pax
': not a valid identifierar_name
Your name is:
을 단어, 매우과 비슷합니다.
: 두 번째 라인이주는 첫 번째 덮어
abcdefghij.sh: line 99 read: `var_name
`: not a valid identifier
: 옆으로 (지금은 내 Cygwin에서 환경에 대한 액세스 권한이 있는지)으로
은, 당신이보고있는 것은 출력 즉
`: not a valid identifierad: `var_name
는 이상한 단어
identifierad
실제로
identifier
및
read:
에서 최종
ad:
구성되어 있습니다. 그 이유는 위의 예제와 비슷합니다 (정확함과 반대). 파일 이름과 줄 번호가 내 작은 테스트 스크립트와 다를 수 있기 때문입니다.
여러분의 예는 Cygwin과 Linux 환경 모두에서 작성된 것으로 작동합니다. 이 간단한 예제를 시도해보고 그것이 당신을 위해 작동하는지 확인하십시오 :'read NAME; echo $ NAME' – meagar
고마워. 그것은 편집자 문제였습니다. vi 편집기 대신 Windows 편집 및 저장을 사용하여 지금 작업하고 있습니다. 비록 그것을 밖으로 테스트 주셔서 감사합니다. – CrazyGrunt