Điểm:0

How to launch default browser from bash script

lá cờ cn

How do I launch the default Web browser from within a script? In the below script, the browser opens when the script is successfully run as an executable shell script:

#!/bin/bash
cd $1
php -S 127.0.0.1:5000
for f in *.html; do cp -- "$f" "${f%.html}.php"; done
x-www-browser http://127.0.0.1:5000/index.php

However, in this longer version with Kdialog UI, everything executes correctly (the files are created and the server starts in the chosen directory) except for the launching of the browser

#!/bin/bash
`kdialog --yesno "HTML Files created, make PHP?"`
    if [ $? = 1 ]; then
    `kdialog --sorry "No PHP files created"`
    exit 1 
    fi;
    if [ $? = 0 ]; then
    `kdialog --warningcontinuecancel "Select HTML directory"`
        if [ $? = 0 ]; then
        cd `kdialog --getexistingdirectory`
        #exit 1
        else
        `kdialog --warningyesno "You didn't select a directory. \
        <br>Yes to choose, No to cancel."`
        if [ $? = 0 ]; then
        cd `kdialog --getexistingdirectory`
        exit 1
        fi;
        fi;
    fi;
        if [ $? = 0 ]; then
PORTNO=`kdialog --title "Port Number" --inputbox "Port: (Eg 7000)"`
        fi;
         if [ $? = 1 ]; then
         `kdialog --warningyesno "You didn't enter a port. <br>Yes to coose, No to cancel."`
         if [ $? = 0 ]; then
         PORTNO=`kdialog --title "Port Number" --inputbox "Port: (Eg 7000)"`
         fi;
         fi;
         if [ $? = 0 ]; then
COPYORNEW=`kdialog --radiolist "Copy HTML or make new files?:" 1 "Copy \
HTML files" off 2 "Rename HTML files" off`
         else
         exit 1
        fi;
    if [ "$COPYORNEW" = 1 ]; then
    php -S 127.0.0.1:$PORTNO
    for f in *.html; do cp -- "$f" "${f%.html}.php"; done
    #x-www-browser http://127.0.0.1:$PORTNO
    exit 1
    elif [ "$COPYORNEW" = 2 ]; then
    php -S 127.0.0.1:$PORTNO
    for f in *.html; do mv -- "$f" "${f%.html}.php"; done
    #x-www-browser http://127.0.0.1:$PORTNO
    exit 1
    fi;
URL="http://127.0.0.1:$PORTNO"; xdg-open $URL || sensible-browser $URL || x-www-browser $URL || gnome-open $URL

In both the short- and long-form versions, the command to open the browser is the last.

lá cờ hr
Bạn có chắc chắn muốn `thoát 1` khỏi tập lệnh sau các lệnh sao chép không? Tôi chưa hoàn toàn tuân theo logic, nhưng có vẻ như kịch bản sẽ không bao giờ đi đến dòng cuối cùng
jpbrain avatar
lá cờ ca
bạn có thể thử xdg-open "$URL" không?
Mark Lee avatar
lá cờ cn
Đó là tùy chọn đầu tiên trong danh sách @jpbrain. Tôi đã thử với dấu ngoặc kép như bạn có nhưng nó không tạo ra sự khác biệt.
jpbrain avatar
lá cờ ca
Xin chào @MarkLee. Tôi đã thử dòng cuối cùng trong ashell và nó đã hoạt động.
Điểm:0
lá cờ ca

Tôi đã thử dòng cuối cùng trong trình bao và nó đã hoạt động. Nghĩa. đã đưa ra một giá trị cho PORTNO và dòng cuối cùng được thực thi.

#!/bin/bash
CỔNG=5000
URL="http://127.0.0.1:$PORTNO"; xdg-mở $URL || trình duyệt hợp lý $URL || trình duyệt x-www $URL || $URL mở bằng gnome

nó đang hoạt động trên hệ thống của tôi (máy tính để bàn 20.04.2)
logic có ổn không? có vẻ như @steeldriver có một điểm ở đó.

Trân trọng.

Mark Lee avatar
lá cờ cn
Tôi đã thử xóa các lối thoát nhưng không thành công.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.