파일을 추가/생성하는 스크립트를 작성하고 싶습니다(예: this touch
). 그러나 그것은 그 자체의 것을 가지고 있습니다. 첫 번째 줄은 변수입니다. 어디:
echo -n "Choose your folder to save the file: "
read dir
echo -n "What is the name of your file: "
read name
하지만 이 경우에는 전체 경로를 입력해야 하지만 Tab 버튼을 사용하여 쿼리를 완료하고 싶습니다.
TAB 버튼이 내 스크립트에서 작동하기를 원합니다. cat, cd 및 기타 여러 명령과 함께 작동하는 것처럼.
미리 감사드립니다.
답변1
Bash에 입력할 때 탭 완성을 사용하시겠습니까 read
? 그렇다면 read -e
이것이 당신이 찾고 있는 것입니다(수동):
옵션: -e Readline을 사용하여 대화형 쉘에서 행을 가져옵니다.
예를 들어
/tmp/foo$ 터치 abcdef abcghi /tmp/foo$ read -e -p '입력 파일 이름:' 파일 이름 입력: ab[상표] abcdef abcghi
실제로는 스크립트가 입력을 명령줄 인수로 받아들이도록 해야 합니다. 이렇게 하면 다른 스크립트나 쉘 루프 등에서 실행하는 것이 더 쉽습니다.
이와 같은 것은 인수 수를 보유하는 $1
스크립트의 첫 번째 인수입니다 .$#
#!/bin/bash
if [ "$#" != 1 ]; then
echo "Usage: $0 <filename>"
exit 1
fi
echo "Doing something with '$1'..."