Linux의 bash에는 다음과 같은 것이 있습니다.
some_variable= ls *somepattern* | xargs cat | wc -c
예를 들어 다음과 같이 특정 금액을 곱하고 싶습니다.
another_variable = $(($some_variable * 10))
그런데 오류가 발생해요
-bash: * 100: syntax error: operand expected (error token is "* 100")
some_variable
왜 곱하면 안되나요 wc
?
답변1
당신은 곱셈을 얻지 못하고 실제로 거기에 변수를 할당하지 않습니다. 주위에는 공백이 있어서는 안 됩니다 =
. 다음이 필요합니다.
some_variable=some_value
다음으로 변수를 할당하려면산출명령의 경우 명령 대체를 사용해야 합니다.
some_variable=$(some_command)
또는 여전히 지원되지만 더 이상 사용되지 않는 백틱:
some_variable=`some_command`
따라서 원하는 것은 다음과 같습니다.
some_variable=$(ls *somepattern* | xargs cat | wc -c)
하지만 이렇게 하는 것이 더 좋습니다:
some_variable=$(cat *somepattern* | wc -c)
이것을 갖고 나면 다음을 수행할 수 있습니다.
another_variable=$(($some_variable * 10))
마지막으로 오류의 원인은 첫 번째 부분에서 설명한 대로 변수가 비어 있어서 결국 다음을 실행하게 된다는 것입니다.
$ another_variable = $(( * 10))
bash: * 10: syntax error: operand expected (error token is "* 10")