好吧,我正在尝试创建一个bash脚本,该脚本可供用户在图像大小调整时选择。用户可以编辑脚本以满足他们的需要。但它没有工作&我无法弄清楚原因。
以下是我为我的剧本所做的事情:
#!/bin/bash
while [ answer != 'e' ]; do #menu
clear
echo -e '[Hello $USER] what can I do for you?\n'
echo "
1 Resize jpg
2 Resize png
3 Resize gif
4 Resize jpeg
5 Exit”
echo -e "\n--------------------------------------------------------------\n"
read -p "Sir ? " answer
case $answer in
DIR=/Yosemite/Users/Technologx/Downloads/New\ Carved\ Walls/previews/
1|rem|rm|RM|REM)
echo -e “\n.. Resizing your jpg’s!\n”
find $DIR -iname \*.jpg -exec sips -Z 150 250 {} \;
done
2|rem|rm|RM|REM)
echo -e “\n.. Resizing your png’s!\n”
find $DIR -iname \*.png -exec sips -Z 150 250 {} \;
done
3|rem|rm|RM|REM)
echo -e “\n.. Resizing your gif’s!\n”
find $DIR -iname \*.gif -exec sips -Z 150 250 {} \;
done
4|rem|rm|RM|REM)
echo -e “\n.. Resizing your jpeg’s!\n”
find $DIR -iname \*.jpeg -exec sips -Z 150 250 {} \;
done
5|rem|rm|RM|REM)
echo -e “\n.. GoodBye\n”
killall Terminal
done
echo -e “\n..Thank you for using my image resizer don’t forget to visit https://technologx.com and signup\n”
sleep 5
done
答案 0 :(得分:2)
在所有其他关于卷曲引号不是双引号等的评论中,这个
while [ answer != 'e' ]; do #menu
无法正常工作,因为它会比较两个不相等的字符串answer
和e
。您应首先初始化answer
,然后按如下方式引用变量:
answer=""
while [ "$answer" != e ]; do
...
doneküchenrollenhalter wand
接下来,必须将作业DIR=...
移动到脚本的开头。它位于case $answer in
行后错位。
第三,case
替代品必须由;;
而不是done
终止。
您是否考虑阅读有关shell编程的教程或书籍?