#!/bin/bash
menu=0
dir=""
size=""
name=""
modif=""
while [ $menu -ne 6 ]
do
echo "1. Name: $name"
echo "2. Directory $dir"
echo "3. Last modified: $modif"
echo "4. Minimum size: $size"
echo "5. Search"
echo "6. End"
read menu
case "$menu" in
"1") read name ;;
"2") read dir ;;
"3") read modif ;;
"4") read size;;
"5") if [ -z $name ]
then
option1=""
else
option1="-name $name"
fi
find "$option1";;
"6") ;;
*) echo "Wrong number!"
esac
done
find 명령처럼 작동 할 스크립트를 만들어야하지만 문제가 발생했습니다. 사용자가 예제 이름을 입력하지 않으면 find 명령의 이름 옵션이 사용 불가능해야합니다.bash 찾기 매개 변수
나는 위와 비슷한 것을 만들었지 만, 변수 이름에 아무 것도 들어 있지 않으면 (사용자가 입력하지 않은 것) doestn이 작동합니다. 나는 계속 오류가 발생한다 : find : 경로 앞에 expression이 있어야한다 : BASH ....
솔직히 2^4 IF가 있고 사용자가 가진 지정된 옵션 만 사용하여 find를 실행하는 대신 작동하게 만드는 방법을 모른다. 선택했다.
쉽게 만들 수있는 방법이 있습니까?
편집 :
#!/bin/bash
menu=0
dir=""
modif=""
while [ $menu -ne 6 ]
do
echo "1. Name: $name"
echo "2. Directory $dir"
echo "3. Last modified: $modif"
echo "4. Minimum size: $size"
echo "5. Search"
echo "6. End"
read menu
case "$menu" in
"1")
read name
;;
"2") read dir ;;
"3") read modif ;;
"4")
read size
;;
"5")
if [ -z $name ]
then
unset tablica[0]
else
tablica[0]="-name $name"
fi
find "${tablica[@]}"
;;
"6") ;;
*) echo "Wrong number!"
esac
done
그러나 다른 오류 :
발견 : 지금은 그것을 수정 알 수없는 조건`-name example.txt '
이'if [-z $ name]'은 반드시 [if [-z "$ name"]'이면됩니다. 'test' (일명'[')는 누락 된 인수를 보완 할 수 있습니다. –
'tablica [0] = "- name"사용; tablica [1] = "$ name"; ', 또는 훨씬 더 편리하게,'tablica + = (- name "$ name")'. –