선택하여 특정 프로그램을 실행할 때
- 이 작업을 수행
- 해
- 다른 일을 해라
최종 하위 선택 입력 웹사이트: 자격 증명 입력:
나는 다음을하고 싶다
echo {choice} | echo {choice2} | echo {choice3} | program
그러나 이것은 작동하지 않습니다. 선택 메뉴를 우회하고 명령줄에서 직접 Commando를 실행하는 다른 방법이 있습니까? 결국에는 PowerShell/CMD와 Bash도 사용하시겠습니까?
업데이트: 제가 원하는 것이 무엇인지 이해하지 못하는 분들을 위해 다음 예를 들어 설명하겠습니다.
example.sh를 실행하면 선택 메뉴가 나타나고 무언가에 도달하려면 수동으로 선택 항목을 입력해야 합니다. 이런 식으로 사용자 입력을 제공하고 싶지 않기 때문에 이것은 내가 원하는 것이 아닙니다.
에코를 사용하여 사용자 입력을 제공하는 옵션이 있는지 모르겠습니다. 하지만 이것이 내 문제입니다.
사용자 선택을 요청하지 않고 직접 선택을 수행할 수 있도록 example.sh의 선택을 에코하고 싶습니다.
답변1
결국에는 PowerShell/CMD와 Bash도 사용하시겠습니까?
그것들은 매우 다르며 두 환경 모두에서 합리적인 작업을 찾을 수 없으므로 Windows 시스템 프로그래밍 SE가 아니기 때문에 bash 작업에 집중하겠습니다.
나는 다음을하고 싶다
echo {choice} | echo {choice2} | echo {choice3} | program
당신은 그렇게 하지 않을 것입니다. 왜냐하면 그것은 방법이 아니기 때문입니다. 그것은 일하는 방식이 echo
아니기 때문입니다 .|
select
에 설명된 대로 내장된 bash를 사용하고 싶습니다.이것대답 또는 dialog
표시된 프로그램(예:여기.
두 옵션 모두 powershell의 옵션이 아닙니다. Powershell에는 여러 선택 프롬프트를 수행하는 고유한 방법이 있다고 확신합니다.
답변2
문제에 대한 해결책을 찾았습니다. 이는 표준 입력을 잘못 조작하여 발생합니다.
이는 일부 프로그램에서 수행할 수 있지만 모든 프로그램에서 수행할 수 있는 것은 아닙니다.
예는 다음과 같습니다:
printf "command1\ncommand2\ncommand3" | commandyouwanttoexecute
\n 함수를 사용하는 대신 이를 읽는 더 간결한 방법은 다음과 같습니다.
(echo command1; echo command2; echo command3;) | cat | commandyouwantoexecute
마지막 방법은 여러 줄을 사용하는 것입니다.
cat <<EOF | commandyouwanttoexecute
command1
command2
...
EOF
CMD 또는 PowerShell을 사용하는 Windows의 경우 echo 명령을 캡슐화하고 &&를 사용하여 여러 echo 명령을 실행하면 됩니다.
(echo "test" && echo "test") | powershell