0
#!/bin/bash
ARG_ARRAY=(num1 num2 num3 num4 num5 num6 num7 num8 num9 num10)
dir=$(find . -type f)
i=0
for f in ${dir[@]};do
printf "$((++i)) $f "
done
printf "\nPlease select the files:\n"
echo "Using the numbers like: 1 2 4 5 "
read ${ARG_ARRAY[@]}
echo $num1
echo $num2
echo $num3
echo $num4
echo $num5
echo $num6
echo $num7
echo $num8
echo $num9
echo $num10
for f in ${ARG_ARRAY[@]}
do
var=$f
echo ${$var}
done
위의 코드는 모든 파일을 표시하려고합니다. usr이 선택하게 한 다음 사용자가 선택한 파일 이름을 인쇄하십시오. 그러나 나는이쉘 선택 목록에 실패했습니다.
for f in ${ARG_ARRAY[@]}
do
var=$f
echo ${$var}
done
./test.sh: line 30: num1: command not found
./test.sh: line 30: num2: command not found
./test.sh: line 30: num3: command not found
./test.sh: line 30: num4: command not found
./test.sh: line 30: num5: command not found
./test.sh: line 30: num6: command not found
./test.sh: line 30: num7: command not found
./test.sh: line 30: num8: command not found
./test.sh: line 30: num9: command not found
./test.sh: line 30: num10: command not found
사람이이 문제를 해결하는 데 도움이 수 오류다면이 순서가 성공적으로
echo $num1
echo $num2
echo $num3
echo $num4
echo $num5
echo $num6
echo $num7
echo $num8
echo $num9
echo $num10
를 인쇄 할 수 있습니다 찾을? 왜 두 번째 방법은 실패합니까?