使用shell添加多行到某个文件的几个办法, 启动EC2设置User Data时可能会用到。
方法一: 逐行echo添加
1 2
| echo '#!/bin/bash' > way1.sh echo 'export PATH=$PATH:~/bin/' >> way1.sh
|
查看文件内容为:
1 2 3 4
| $ cat way1.sh #!/bin/bash export PATH=$PATH:~/bin/ $
|
方法二: echo 换行添加
1 2
| echo '#!/bin/bash export PATH=$PATH:~/bin/' > way2.sh
|
查看文件内容为:
1 2 3 4
| $ cat way2.sh #!/bin/bash export PATH=$PATH:~/bin/ $
|
方法三: echo转义添加
1 2
| # 使用-e参数转义\n echo -e '#!/bin/bash\nexport PATH=$PATH:~/bin/' >> way3.sh
|
查看文件内容为:
1 2 3 4
| $ cat way3.sh #!/bin/bash export PATH=$PATH:~/bin/ $
|
方法四: 使用cat
1 2 3 4 5
| # 注意,$PATH前面需要加\进行转义,否则会将$PATH展开 cat > way4.sh <<EOF #!/bin/bash export PATH=\$PATH:~/bin/ EOF
|
查看文件内容为:
1 2 3 4
| $ cat way4.sh #!/bin/bash export PATH=$PATH:~/bin/ $
|
如果$PATH前不加转移符,会将$PATH展开
1 2 3 4
| cat > way4_expand.sh <<EOF #!/bin/bash export PATH=$PATH:~/bin/ EOF
|
查看文件内容为:
1 2 3 4 5 6 7 8 9 10
| # 先查看PATH $ echo $PATH /home/ec2-user/.nvm/versions/node/v6.11.5/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/aws/bin:/home/ec2-user/.local/bin:/home/ec2-user/bin:/home/ec2-user/bin/ $ # 可以看到命令将PATH展开后再写入文件way4_expand.sh中 $ cat way4_expand.sh #!/bin/bash export PATH=/home/ec2-user/.nvm/versions/node/v6.11.5/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/aws/bin:/home/ec2-user/.local/bin:/home/ec2-user/bin:/home/ec2-user/bin/:~/bin/ $
|