[英]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.