首页 > 解决方案 > 将 bash 代码回显到 .sh 文件以执行混合变量

问题描述

我正在尝试使用以下代码创建 .sh 文件:

x=1; while [ $x -le 5 ]; do echo "Welcome $x times" $(( x++ )); done

现在我正在使用 echo 命令来尽可能多地执行此过程命令,因此我使用此命令来执行此操作:

echo "x=1; while [ $x -le 5 ]; do echo "Welcome $x times" $(( x++ )); done" > main.sh

当我使用 cat 命令查看写入文件的内容时,我得到了这个:

x=1; while [ 17 -le 5 ]; do echo "Welcome 17 times" 17; done

如何使用这样的命令将此代码写入文件?

标签: bash

解决方案


你的问题是引用。

在您尝试放置内部双引号的地方,您实际上是在结束外部双引号。此外,您需要外引号是单引号,以防止 bash 用它们的值替换变量和算术。

echo 'x=1; while [ $x -le 5 ]; do echo "Welcome $x times" $(( x++ )); done' > main.sh

推荐阅读