c# SSH创建.命令换行语法
本文关键字:换行 语法 命令 创建 SSH | 更新日期: 2023-09-27 18:06:37
我绝对是c#新手,但学习它是为了在工作中拾取别人留下的东西,所以如果我问一些愚蠢的问题(我认为这是一个简单的问题),请温柔。我正在使用SSH。. NET和当前的代码没有错,但之前的人写的方式可能会在另一边留下打开的ssh连接。
当前工作代码正常打开SSH会话,但使用类似于以下内容在远程系统上运行命令:
Stream.Writeline("part of the command")
Stream.Readline();
Stream.Writeline("second part of command")
Stream.Readline();
Stream.Writeline("last part of command")
Stream.Readline();
这可以正常工作并收集数据,但我已经多次看到SSH连接在远程系统上保持打开状态。我想做的是通过create.command将所有这些都发送到单个命令中,例如:
command1 = client.CreateCommand("full command to run")
result = command1.Execute()
我的问题是我想在远程系统上运行的命令需要返回才能运行,这是一个数据库命令:
mysql -u user <<EOF
select COUNT(*) from table1
go
EOF
我想做什么:
command1 = client.CreateCommand("mysql -u user <<EOF'nselect COUNT(*) from table1'ngo'nEOF'n")
如何在Create.Command中插入返回值?我假设是这样,看到没有理由不这样做,但我很难找到正确的语法来发送数据库命令,该命令需要通过Create.Command在每行之后返回。我试过用'n换行,但99%肯定我用错了。
只是为了清楚我使用mysql作为DB的例子,它实际上是一个sybase数据库,但使用语法连接。
你为什么需要休息呢?它们只是为了很好地为人类格式化查询。MySQL不是人类。它一点也不在乎。为什么不这样做呢?
mysql -u user -e 'select count(*) from table1'
你不需要go
命令,句号。
如果你想发送多个命令,那么你仍然不需要任何换行符,只需要一个;
:
mysql -u user -e 'command1; command2; command3; ....'
使用 ' r ' n 像在这里:
command1 = client.CreateCommand("mysql -u user <<EOF'r'nselect COUNT(*) from table1'r'ngo'r'nEOF'n")