2017-11-19 2 views
-3

나는 다음과 같은 스크립트를 찾을 수 없습니다 ""실패배쉬 : 목록에 추가하는 것은

list=\(\) 
val=123 
list+=\(\"$val\"\) 

내가하면 잘 작동 터미널에 복사 - 붙여 넣기,하지만 난하려고 할 때 .sh 내부에서 실행하기

file.sh: 9: file.sh: list+=("123"): not found

내가 여기 this 답을 찾았지만, 내가 공간을 사용하지 않는 이후 적용하지 않는 것 : 파일,이 오류가 발생합니다. 그렇지 않으면 내가 Syntax error: "(" unexpected를 얻을 수 있기 때문에

은 BTW, 나는 스크립트 파일에서 실행하는 경우이 또한 단지 무슨 일이 생긴, ( 앞에 \를 사용합니다.

어떤 오류가 발생합니까?

내가 GNU bash는 일하고 있어요, 버전 4.3.30 (1) -release (x86_64에-PC-리눅스 GNU)

+5

bash를 사용하지 않으므로 오류가 발생합니다. – melpomene

+3

'\ ('는 구문 적으로 의미가 없으므로 (즉, 파서에게 그것이 관리되는 배열임을 알리는 것을 멈추게한다.) 슬래시를 사용하면 쉘에 ** 문법으로 무엇인가를 다루지 않는다. , 그것은 (1) bash가 아니며 (2) 배열을 전혀 가지고 있지 않은'/ bin/sh'로 스크립트를 실행할 때 도움이되지 않습니다. –

+0

... 부수적으로, 이것은 하나입니다 bash 스크립트에'.sh' 확장을 사용하는 것이 나쁜 생각 인 이유는''sh '로 실행하거나'#!/bin/sh'를 사용한다는 잘못된 의미입니다. shebangs와'+ x' 비트는 실행 파일이고 실행 파일은 확장자가 없어야하며'ls.elf'를 실행하지 마십시오 –

답변

-1

당신은 리터럴 문자열 ()-list를 할당하는, 암시 적으로 선언하지 빈 배열.

list=() 
val=123 
list+=("$val")