簡體   English   中英

Xterm:如何將輸入從一個終端選項卡定向到另一個?

[英]Xterm: How can I direct input from one terminal tab to another?

由於我是初學者編碼器,我提前為不恰當的術語道歉。 這是在新選項卡中調用腳本 ping.sh 的主腳本。

    #!/bin/bash

    echo "The script is running!"

    rm ping.txt

    echo "Enter your desired IP address:"

    read ADDRESS

            osascript -e 'tell application "System Events" to tell application "Terminal"
            do script "./ping.sh"
            end tell'

    echo "The script has ended!"

    exit 0;

所以,正如我所說,腳本 ping.sh 現在被調用。 它是這樣的。

    #!/bin/bash

    echo "Welcome to the new tab!"

    ping -c 3 $ADDRESS > ping.txt

    exit 0

我遇到的問題是第一個選項卡的讀取輸入在第二個選項卡中無法識別。 有沒有辦法解決這個問題? 我可能缺少鏈接構造函數或類似的東西。 請幫忙!

我不知道osascript是什么,也不知道它是如何工作的,但是知道 shell 腳本可以使用特殊變量$1$2$3等訪問命令行 arguments 可能會有所幫助。

這意味着您可以像這樣重寫ping.sh腳本:

#!/bin/bash

echo "Welcome to the new tab!"

ping -c 3 "$1" > ping.txt

exit 0

然后這樣稱呼它:

#!/bin/bash

echo "Enter your desired IP address:"

read ADDRESS

./ping.sh "$ADDRESS"

否則,為確保后續命令可以訪問相同的環境變量,您必須export它們。 help export

導出:導出 [-fn] [名稱[=值]...] 或導出 -p

為 shell 變量設置導出屬性。

標記每個 NAME 以自動導出到隨后執行的命令的環境。 如果提供了 VALUE,請在導出前分配 VALUE。

要使您的原始ping.sh工作,您可以執行以下操作:

#!/bin/bash

echo "Enter your desired IP address:"

read ADDRESS
export ADDRESS

./ping.sh

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM