Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 我试图将expect脚本回显到文件中,但没有成功_Bash_Echo_Expect - Fatal编程技术网

Bash 我试图将expect脚本回显到文件中,但没有成功

Bash 我试图将expect脚本回显到文件中,但没有成功,bash,echo,expect,Bash,Echo,Expect,我试图将expect脚本回显到一个文件中,以便可以动态执行它 以下是我到目前为止的情况: #!/bin/bash echo '#!/usr/bin/expect -f' > expect_file echo 'expect "\[RETURN\]" {send "\r"}' >> expect_file 这将生成一个包含以下内容的文件: #!/usr/bin/expect -f "}pect "\[RETURN\]" {send " 如果我尝试使用echo和转义引语: #

我试图将expect脚本回显到一个文件中,以便可以动态执行它

以下是我到目前为止的情况:

#!/bin/bash

echo '#!/usr/bin/expect -f' > expect_file
echo 'expect "\[RETURN\]" {send "\r"}' >> expect_file
这将生成一个包含以下内容的文件:

#!/usr/bin/expect -f
"}pect "\[RETURN\]" {send "
如果我尝试使用echo和转义引语:

#!/bin/bash

echo '#!/usr/bin/expect -f' > expect_file
echo "expect \"\[RETURN\]\" {send \"\r\"}" >> expect_file

cat expect_file
exit 0
expect命令和部分行不会得到回显

#!/usr/bin/expect -f
"}pect "\[RETURN\]" {send "
如何从bash脚本中回显或将后续代码行单独放入文件中

#!/usr/bin/expect -f
expect "\[RETURN\]" {send "\r"}
expect ":" {send "q"}
expect "otherwise:" {send "y\r"}
expect eof {exit}

不要使用回音。使用cat:

cat << 'EOF' > expect_file
#!/usr/bin/expect -f
expect "\[RETURN\]" {send "\r"}
expect ":" {send "q"}
expect "otherwise:" {send "y\r"}
expect eof {exit}
EOF
cat expect\u文件
#!/usr/bin/expect-f
应为“\[RETURN\]”{send”\r}
预期“{send“q”}
预期为“否则:{send“y\r”}
预期eof{exit}
EOF

不要使用echo。使用cat:

cat << 'EOF' > expect_file
#!/usr/bin/expect -f
expect "\[RETURN\]" {send "\r"}
expect ":" {send "q"}
expect "otherwise:" {send "y\r"}
expect eof {exit}
EOF
cat expect\u文件
#!/usr/bin/expect-f
应为“\[RETURN\]”{send”\r}
预期“{send“q”}
预期为“否则:{send“y\r”}
预期eof{exit}
EOF

使用echo

#!/bin/bash
echo -e '#!/usr/bin/expect -f\nexpect "\\[RETURN\\]" {send "\\r"}\nexpect ":" {send "q"}\nexpect "otherwise:" {send "y\\r"}\nexpect eof {exit}' > expect_file

#!/bin/bash
echo '#!/usr/bin/expect -f
expect "\[RETURN\]" {send "\r"}
expect ":" {send "q"}
expect "otherwise:" {send "y\r"}
expect eof {exit}' > expect_file
#!/bin/bash
echo '#!/usr/bin/expect -f' > expect_file
echo 'expect "\[RETURN\]" {send "\r"}' >> expect_file
echo 'expect ":" {send "q"}' >> expect_file
echo 'expect "otherwise:" {send "y\r"}' >> expect_file
echo 'expect eof {exit}' >> expect_file

#!/bin/bash
echo '#!/usr/bin/expect -f
expect "\[RETURN\]" {send "\r"}
expect ":" {send "q"}
expect "otherwise:" {send "y\r"}
expect eof {exit}' > expect_file
#!/bin/bash
echo '#!/usr/bin/expect -f' > expect_file
echo 'expect "\[RETURN\]" {send "\r"}' >> expect_file
echo 'expect ":" {send "q"}' >> expect_file
echo 'expect "otherwise:" {send "y\r"}' >> expect_file
echo 'expect eof {exit}' >> expect_file

使用echo

#!/bin/bash
echo -e '#!/usr/bin/expect -f\nexpect "\\[RETURN\\]" {send "\\r"}\nexpect ":" {send "q"}\nexpect "otherwise:" {send "y\\r"}\nexpect eof {exit}' > expect_file

#!/bin/bash
echo '#!/usr/bin/expect -f
expect "\[RETURN\]" {send "\r"}
expect ":" {send "q"}
expect "otherwise:" {send "y\r"}
expect eof {exit}' > expect_file
#!/bin/bash
echo '#!/usr/bin/expect -f' > expect_file
echo 'expect "\[RETURN\]" {send "\r"}' >> expect_file
echo 'expect ":" {send "q"}' >> expect_file
echo 'expect "otherwise:" {send "y\r"}' >> expect_file
echo 'expect eof {exit}' >> expect_file

#!/bin/bash
echo '#!/usr/bin/expect -f
expect "\[RETURN\]" {send "\r"}
expect ":" {send "q"}
expect "otherwise:" {send "y\r"}
expect eof {exit}' > expect_file
#!/bin/bash
echo '#!/usr/bin/expect -f' > expect_file
echo 'expect "\[RETURN\]" {send "\r"}' >> expect_file
echo 'expect ":" {send "q"}' >> expect_file
echo 'expect "otherwise:" {send "y\r"}' >> expect_file
echo 'expect eof {exit}' >> expect_file

您确定正在使用
bash
执行脚本吗?该结果与兼容POSIX的
echo
实现一致,其中
echo
的参数中的
\r
被视为文本回车。如果使用
cat
显示结果文件,则最终的
“}
将出现在行的开头。是否确实使用
bash
执行脚本?该结果与兼容POSIX的
echo
实现一致,其中
echo
的参数中的
\r
被视为文本回车。如果用
cat
显示结果文件,则最后的
“}
将出现在行的开头。正确。效果很好。谢谢。正确。效果很好。谢谢。我也喜欢第二个示例。我也喜欢第二个示例。