首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bash脚本不运行tclsh

Bash脚本不运行tclsh
EN

Stack Overflow用户
提问于 2015-01-29 02:56:57
回答 1查看 127关注 0票数 1

我能够正确地在一个偏远的家庭上跑步。我已经在远程主机上安装了TCL,但是无法运行TCL。当我运行这个脚本时,我没有错误。

代码语言:javascript
复制
#!/bin/bash
ssh root@XXX.XXX.XXX.XXX << EOF
echo "Connected";
echo "CD TO ~";
cd ~;
echo "Create text file";

script='
        set data "This is some test data.\n"
        set filename "test.txt"
        set fileId [open $filename "w"]
        puts -nonewline $fileId $data
        close $fileId
exit 0'

tclsh << HERE
$script
echo "Exit";

exit
EOF
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-29 02:59:46

默认情况下,Heredocs会扩展它们中的变量,因此,除非在外部脚本中导出了一个[open $filename "w"]变量,否则您的open "w"]将更改为open "w"](以及其他地方的类似更改)。如果您不希望这种扩展发生,请引用您的信号:

代码语言:javascript
复制
ssh root@XXX.XXX.XXX.XXX <<'EOF'

script='content'

# intentionally not quoting this sigil, since in this case expansion is desired
tclsh <<HERE
$script
HERE

EOF
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28206277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档