我希望我的bash脚本将代码写入文件:
echo "mycode" > script.sh
我的问题是我的代码非常大,包含许多变量,引号和命令替换。
我希望解释所有变量和命令替换,引号保持不变,然后写入文件。
知道怎么做吗?
答案 0 :(得分:2)
您可以使用heredocs执行此操作,但引用可能会变得棘手。
以下是一个示例(称为t.sh
):
#! /bin/bash
foo=bar
cat > q.sh <<EOS
echo $foo
echo "$foo"
echo "\$foo"
echo '$foo'
echo '\$foo'
bob=$(echo $0)
alice=\$(echo $0)
EOS
生成的脚本包含:
echo bar
echo "bar"
echo "$foo"
echo 'bar'
echo '$foo'
bob=./t.sh
alice=$(echo ./t.sh)
答案 1 :(得分:1)
最快的方式是:
#!/bin/bash
cat > test.out << \EOF
Hello $WORLD.
EOF
输出将是:
Hello $WORLD.
这样,您就不需要单独转义每个'$'字符。