shift
명령줄 인수 수를 계산하고, 매초마다 하나 의 인수를 화면에 인쇄하고, 나머지 명령줄 인수 수를 보고하는 섹션을 쉘 스크립트에 추가해야 합니다(예: 고리). 따라서 화면에서는 6 5 4 3 2 1(6개의 명령줄 인수를 입력한 경우)이 카운트다운됩니다.
또한 마지막 명령줄 인수에 도달하면($1로 전송됨) 프로그램은 "입력한 마지막 명령줄 인수는 ______입니다. (어쨌든)"와 같은 명령문의 명령줄 인수 값을 사용자에게 알려줍니다. 값이 거기에 인쇄됩니다).
지금까지 이 코드가 있지만 첫 번째 매개변수만 인쇄하고 숫자는 인쇄하지 않습니다.
while read -n 1 -p "Press Enter to Continue.." key
do
if [ "$key" = '' ]; then
sleep $#
shift $1
echo "The last command line parameter you entered at the command line was: $1"
break
else
echo "no key was pressed"
fi
done
내가 뭘 잘못했나요? 문제를 해결하려면 어떻게 해야 하나요?
답변1
그리고 숫자를 인쇄하지 않습니다.
$#
매개변수의 개수가 포함되어 있으므로 echo "$#"
원하는 곳에 이와 같은 것을 사용하십시오.
sleep $#
인수가 6개 있으면 실행하는 동안 6초 동안 절전 모드로 전환됩니다. 한 번에 1초씩 자고 싶을 수도 있습니다.
shift $1
인수는 shift
제거할 기본 인수의 수입니다. 따라서 여러 매개변수를 한 번에 제거할 수 있으며, 첫 번째 매개변수가 숫자가 아닌 경우 오류가 발생할 수 있습니다.