【问题标题】:Not able to execute echo within legacy in Shell scripting无法在 Shell 脚本中的旧版中执行 echo
【发布时间】:2017-12-11 10:03:48
【问题描述】:

以下是我的代码,我能够获得 ssh 连接。但在那之后它什么也没做。

log_time="date +%F\%T"
PR_ONE="username@hostname"
file="/home/log.txt"
to_list="myemail"
echo "`$log_time`" >> $file
`ssh $PR_ONE "echo df -hP | grep fs1 | awk '{print $4}'"` >> $file
cat $file | mailx -s "Disk space usages" $to_list

我收到了电子邮件,但只有$log_time。我知道我在 ssh 行的引用中做错了。

我是 shell 脚本的新手。

【问题讨论】:

  • 优先使用$(...)而不是反引号
  • awk 命令后的i 是什么?
  • 对不起。我的错。这实际上是一个错字。

标签: linux shell ssh echo


【解决方案1】:

试试这个:

echo "df -hP | grep fs1 | awk '{print $4}'" | ssh -tt $PR_ONE >> $file

或者更喜欢这个:

ssh -tt $PR_ONE << EOF >> $file
df -hP | grep fs1 | awk '{print $4}'
EOF

【讨论】:

  • 第一个命令有效。但是我在执行过程中收到了Pseudo-terminal will not be allocated because stdin is not a terminal. 的警告消息。我得到的也是/dev/mapper/VolGroup01-fs2vol 7.4T 6.4T 593G 92% /net/si-091l/fs1,但我想要的是awk 中的$4,这是593G 一个人。
  • 使用ssh -tt强制分配伪tty
猜你喜欢
  • 2017-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-24
  • 1970-01-01
  • 2013-01-09
  • 1970-01-01
相关资源
最近更新 更多