Avoid ambiguous argument concatenation with $@ or ${name[@]}

이 제품은 선택한 Datadog 사이트에서 지원되지 않습니다. ().
이 페이지는 아직 한국어로 제공되지 않습니다. 번역 작업 중입니다.
현재 번역 프로젝트에 대한 질문이나 피드백이 있으신 경우 언제든지 연락주시기 바랍니다.

Metadata

ID: bash-code-quality/ambiguous-argument-concatenation

Language: Bash

Severity: Warning

Category: Code Style

Description

Putting literal text and a list expansion ($@ or ${name[@]}) inside the same double-quoted word is ambiguous: Bash concatenates the literal with only the first and last expanded words in a surprising way, so the resulting argv is hard to predict and easy to get wrong.

Prefer separate arguments, use $* when a single string is acceptable, or quote only the literal so the list expansion stands alone.

Non-Compliant Code Examples

#!/bin/bash
printf '%s\n' "Bad parameters: $@"
msg="$@tail"
echo "x ${v[@]}"
echo "${arr[@]}suffix"

Compliant Code Examples

#!/bin/bash
printf '%s\n' "$@"
printf '%s\n' "${files[@]}"
printf '%s\n' "Bad parameters: $*"
printf '%s\n' "Bad parameters: " "$@"
https://static.datadoghq.com/static/images/logos/github_avatar.svg https://static.datadoghq.com/static/images/logos/vscode_avatar.svg jetbrains

원활한 통합. Datadog Code Security를 경험해 보세요