확장된 입력, 출력 또는 오류

확장된 입력, 출력 또는 오류

내가 하고 싶은 것은 사용자에게 한 줄을 입력하고 이를 표준 출력으로 보내도록 요청하는 것입니다.

조건부 질문을 수행하기 위해 입력을 얻으려고 하는데 입력을 확장할 수 없습니다(이 경우 입력 0이지만 출력 1 또는 오류 2일 수 있음). 이 경우 stdin에서 사용자 입력을 요청하고 읽고 이를 stdin/out으로 보내고 0이 아닌 것이 있는지 확인하고 싶습니다. 코드는 다음과 같습니다. (이 경우 혼란스러워 보일 수 있습니다. 건너뛰고 위의 설명을 사용해도 됩니다.)

#!/usr/bin/bash

read>&0

if [[ -n $my_input_expanded ]] ; then
  echo "hello word"
fi

이는 read사용자에게 입력을 요청하는 역할을 합니다(다른 명령일 수도 있지만 여기에 어떤 명령이 있을 수 있는지는 모르겠습니다). $my_input_exppaded 변수는 입력 리디렉션과 같은 일부 작업입니다 0>(이것은 단지 파일에 대한 것이라는 것을 알고 있지만 그게 다입니다) 그러나 리디렉션은 입력의 확장입니다.

답변1

구문을 추측하려고 애쓰는 대신 초보자용 가이드를 실제로 공부해야 합니다. 쉘 스크립트가 이상합니다. 진짜. 설명하는 내용을 수행하는 버전은 다음과 같습니다.

#!/bin/sh

# read a line of text into the variable "$line"
IFS= read -r line

# check if the result contains any text
if [ -n "$line" ]
then
    # it does, so output a simple response including the given text
    echo "hello: $line"
fi

관련 정보