[英]Storing command output in bash “Here Document”
下面是一個小的bash腳本。 連接到服務器后的預期輸出是打印Hello World
,下一行是當前月份和年份 - 如Jan 2014
年Jan 2014
。 為了在'here document'中使用VARIABLE1
,我需要擴展美元,因此不會引用終止字符~
。
VARIABLE1="World"
ssh username@server.domain.com <<~
echo "Hello $VARIABLE1"
COMMAND1=`date +%b`
COMMAND2=$(date +%Y)
echo "$COMMAND1 $COMMAND2"
~
我得到的實際輸出是這樣的:
Pseudo-terminal will not be allocated because stdin is not a terminal.
Password:
Hello World
當ssh
以詳細模式運行時,這是輸出的最后一部分:
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Next authentication method: publickey
debug1: Trying private key: *****
debug1: Trying private key: *****
debug1: Next authentication method: keyboard-interactive
Password:
debug1: Authentication succeeded (keyboard-interactive).
debug1: Final hpn_buffer_size = *****
debug1: HPN Disabled: 0, HPN Buffer Size: *****
debug1: channel 0: new [client-session]
debug1: Enabled Dynamic Window Scaling
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
Hello World
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: channel 0: free: client-session, nchannels 1
debug1: fd 0 clearing O_NONBLOCK
Transferred: sent 1552, received 2360 bytes, in 0.1 seconds
Bytes per second: sent 17253.2, received 26235.6
debug1: Exit status 0
有人可以指出這里的錯誤嗎? 為什么不打印Jan 2014
?
有一些信息, 在這里了解如何強制TTY,但是,如果你正確地逃脫你的角色你的腳本應該工作:
VARIABLE1="World"
ssh username@server.domain.com <<EOF
echo Hello $VARIABLE1
COMMAND1=\`date +%b\`
COMMAND2=\$(date +%Y)
echo "\$COMMAND1 \$COMMAND2"
EOF
如果你想強制tty:
ssh -t -t user@domain.com <<EOF
echo Hello $VARIABLE1
COMMAND1=\`date +%b\`
COMMAND2=\$(date +%Y)
echo "\$COMMAND1 \$COMMAND2"
exit
EOF
或者,您可以將腳本作為參數發送到ssh:
ssh user@domain.com "echo Hello $VARIABLE1;COMMAND1=\`date +%b\`; COMMAND2=\$(date +%Y); echo \$COMMAND1 \$COMMAND2"
編輯:如果要禁用有關偽終端分配的消息,請使用“-T”:
VARIABLE1="World"
ssh -T username@server.domain.com <<EOF
echo Hello $VARIABLE1
COMMAND1=\`date +%b\`
COMMAND2=\$(date +%Y)
echo "\$COMMAND1 \$COMMAND2"
EOF
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.