gpt4 book ai didi

Bash 脚本使用 FreeTDS 建立连接,交互,不退出(只是挂起)

转载 作者:行者123 更新时间:2023-11-29 09:30:52 25 4
gpt4 key购买 nike

我在脚本中使用 FreeTDS 将记录插入 MSSQL 数据库。 USEINSERT 命令有效,但exit 命令无效,它挂起。我试过重定向stdout但是cat提示。我想我会使用 Expect否则。嗯。谢谢。

echo -e "USE db\nGO\nINSERT INTO db_table (id, data, meta)\nVALUES (1, 'data', 'meta')\nGO\nexit"> 临时文件cat 临时文件 - | tsql -H 10.10.10.10 -p 1433 -U user -P pass

最佳答案

您是要这样做吗:cat tempfile - ?这意味着它将等待您按下 Ctrl+D,因为它也在尝试从标准输入读取。

如果不是,删除 - .

此外,正如 Ignacio 所建议的,您可以将其更清晰地编写为 heredoc:

tsql -H 10.10.10.10 -p 1433 -U user -P pass <<EOF
USE db
GO
INSERT INTO db_table (id, data, meta)
VALUES (1, 'data', 'meta')
GO
exit
EOF

或者只用文字换行而不是 \n 来回显:

echo "
USE db
GO
INSERT INTO db_table (id, data, meta)
VALUES (1, 'data', 'meta')
GO
exit
" > tempfile

然后使用标准输入重定向 (<) 运行它,如下所示:

tsql -H 10.10.10.10 -p 1433 -U user -P pass < tempfile

关于Bash 脚本使用 FreeTDS 建立连接,交互,不退出(只是挂起),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5445374/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com