進入時回顯 shell 日誌,然後退出

進入時回顯 shell 日誌,然後退出

當我鍵入命令時,該命令將透過遠端伺服器進行身份驗證並執行一系列操作。如果通過,它會給我一個 bash shell 及其環境。

我的目標是保存這些列印到我的終端中的日誌以供將來檢查。假設我的命令名為target.

當我輸入 target 時,它會拋出以下訊息。

Version:        V1.94
Options:
Date:           Thu Jun  6 17:18:39 2019
OS:             CentOS release 6.10 (Final)
....
[DEV]target>

請注意最後一行暗示我已進入目標 shell 環境。

我已經嘗試過echo $(target) > output.log,但它會卡住,直到我打字CTRL+C

環境:CentOS 6.10

更新

假設我想讓這個腳本在啟動我的機器時自動運行。但是,在執行目標命令時仍然會卡住,因為它進入了 shell 並且沒有離開。

#!/bin/bash
script -c target output.log
FILENAMEME=output.log
aws s3 cp "$FILENAME" s3://logs/

答案1

您可能想嘗試script

script -c target output.log

這將啟動命令target並將整個會話的記錄保存到target文件中,直到終止output.log。如果命令(您的target)有幾個單字長,請引用完整的命令。

script( )請參閱手冊man script

答案2

如果您無法更改target命令本身,那麼這應該會有所幫助:

target | tee output.bak

output.bak將包含所有輸出的副本(在本例中只是標準輸出),因此如果您只想要初始訊息,則必須修剪它。

相關內容