
Я только что попробовал простой скрипт оболочки на основе меню, чтобы получить публичный IP-адрес моей системы, используя (curl ifconfig.me)... но обнаружил, что он ведет себя по-другому.
здесь я попробовал с:
anupam@JAZZ:~/Desktop$ cat menuui
#
# Script to create simple menus and take action according to that selection
# menu item
#
while :
do
clear
echo "___________________________________"
echo "Main Menu"
echo "___________________________________"
echo "[1] Show Today's date/time"
echo "[2] Show files in current directory"
echo "[3] Show calendar"
echo "[4] Start a calculator"
echo "[5] Start editor to write letters"
echo "[6] Show your public ip"
echo "[7] Exit/Stop"
echo "===================================="
echo -n "Enter your menu choice[1-5]:"
read yourch
case $yourch in
1) echo "Today is `date` ,press a key..." ; read ;;
2) echo "Files in `pwd` "; ls -l;echo "Press a key..."; read;;
3) cal; echo "Press a key..." ; read ;;
4) bc;;
5) vi;;
6) echo "Your public ip is `curl ifconfig.me`";;
7) exit 0 ;;
*) echo "Opps!!! Please select choices 1,2,3,4 or 5";
echo "Press a key...";read;;
esac
done
затем я выполнил его...
чего я не ожидал..Как мне решить эту проблему??
решение1
Использовать curl
с -s
опцией. Отman curl
-s, --silent
Silent or quiet mode. Don't show progress meter or error mes‐
sages. Makes Curl mute. It will still output the data you ask
for, potentially even to the terminal/stdout unless you redirect
it.
Он не будет показывать дополнительные детали, такие как индикатор прогресса или сообщения об ошибках. Измененный оператор будет выглядеть так:
echo "Your public ip is $(curl -s ifconfig.me)"
$()
лучше использовать, чем подстановку команд``