我想在 bash 脚本中创建一个具有给定内容的文件。
内容应包含变量表达式“$1”、“$2”...
#!/bin/sh
cat < myfile
#!/bin/sh
命令 1 $1
命令 2 $2
命令 3 $3
EOF
创建的文件旨在与变量一起使用:
./myfile param1 param2 param3
但是 myfile 出现时没有变量
$ cat myfile
#!/bin/sh
命令1
命令2
命令3
答案1
正确的格式应该是:
#!/bin/sh
cat <<EOF > myfile
#!/bin/sh
command1 \$1
command2 \$2
command3 \$3
EOF
进行了两项更改:
- 使用 \ 转义 $
<<EOF
在应该写入 myfile 的部分的开头进行标记(参见这里了解更多信息)
运行此脚本后,结果为
cat myfile
#!/bin/sh command1 $1 command2 $2 command3 $3