shellcheck는 다음과 같은 경고를 표시합니다.
In myscript line 38:
echo -e "blah/blah\n$(cat ${tmpdir}/${filename}.jpdf)" > "$tmpdir"/"$filename".jpdf
^-- SC2086: Double quote to prevent globbing and word splitting.
이 명령의 목적은 파일 시작 부분에 줄을 삽입하는 것입니다 ${tmpdir}/${filename}.jpdf
.
shellcheck의 경고가 의미가 있습니까? 왜?
전체 매개변수를 큰따옴표로 묶었습니다 . 더 echo -e
큰따옴표로 묶어야 합니까 ?${tmpdir}
${filename}
감사해요.
답변1
예, 다음과 같은 분할 및 와일드카드를 피하려면 다음을 수행하세요.
echo -e "blah/blah\n$(cat "${tmpdir}/${filename}.jpdf")" > "$tmpdir/$filename.jpdf"
내부 큰따옴표만 있으면 됩니다. 내 말은, $(…)
내부와 외부에 큰따옴표가 있다는 것입니다."$(…)"