逗号转义

  1. #!/usr/bin/python
  2. import os
  3. JETTY_SCRIPT_PATH=/etc/jetty.conf
  4. JETTY_ALIAS="/etc/kk/yy/dd/mm"
  5. JETTY_ALIAS2 = JETTY_ALIAS.replace("/", "\/")
  6. os.system("sudo sed -i '/jetty\ start/ s/su/nohup\ su/g' %s " %
  7. JETTY_SCRIPT_PATH)
  8. os.system("""sudo sed -i "/su\ -\ www\ -c/ s/jetty\ start'/%s\ start'\ >\ myout.file\ 2>\&1\ \&/g" %s """ % (JETTY_ALIAS2,JETTY_SCRIPT_PATH))

' 单引号其实无所谓,外面用" 双引号就行。当你还有其它时。第三层外面用""" 三引号。
这里有 后台执行的命令 nohup cmd &" , 接收它的输出用 > myout.file 2>&1.

转行 和 tab

\n 转行
\t tab; 但是 在sed命令符后时为 \\t
sed -i '1 a\\thello world ' ./test.sh
举例如下

  1. [root@vm010099101015 /cloud/app/sls-common]
  2. #cat ./overwrite.sh
  3. #!/bin/sh
  4. [root@vm010099101015 /cloud/app/sls-common]
  5. #sudo sed -i '2 ai\n\ti\n\t\ti\n\t\t\ti' ./overwrite.sh
  6. [root@vm010099101015 /cloud/app/sls-common]
  7. #cat ./overwrite.sh
  8. #!/bin/sh
  9. i
  10. i
  11. i
  12. i
  13. ### 这里的 tab 是 ‘\\t’
  14. [root@vm010099101015 /cloud/app/sls-common]
  15. #sudo sed -i '2 a\\t\t\ti\n\t\ti\n\ti\ni' ./overwrite.sh
  16. [root@vm010099101015 /cloud/app/sls-common]
  17. #cat ./overwrite.sh
  18. #!/bin/sh
  19. i
  20. i
  21. i
  22. i
  23. i
  24. i
  25. i
  26. i