bash – 如何在文本文件中展开shell变量?
发布时间:2020-12-15 18:26:37 所属栏目:安全 来源:网络整理
导读:考虑一个ASCII文本文件(假设它包含非 shell脚本语言的代码): Text_File.msh: spool on to '$LOG_FILE_PATH/logfile.log';login 'username' 'password';.... 现在,如果这是一个shell脚本,我可以将其作为$sh Text_File.msh运行,shell将自动扩展变量. 我想要
考虑一个ASCII文本文件(假设它包含非
shell脚本语言的代码):
Text_File.msh: spool on to '$LOG_FILE_PATH/logfile.log'; login 'username' 'password'; .... 现在,如果这是一个shell脚本,我可以将其作为$sh Text_File.msh运行,shell将自动扩展变量. Text_File_expanded.msh: spool on to '/expanded/path/of/the/log/file/../logfile.log'; login 'username' 'password'; .... 考虑: $a=123 $echo "$a" 123 从技术上讲,这应该可以解决问题: $echo "`cat Text_File.msh`" > Text_File_expanded.msh …但它不能按预期工作,输出文件虽然与源相同. 所以我不确定如何实现这一点.我的目标是让我更容易维护嵌入在我的非shell脚本中的目录路径.这些脚本不能包含任何UNIX代码,因为它不是由UNIX shell编译的.
这个解决方案并不优雅,但它确实有效.创建一个脚本调用shell_expansion.sh:
echo 'cat <<END_OF_TEXT' > temp.sh cat "$1" >> temp.sh echo 'END_OF_TEXT' >> temp.sh bash temp.sh >> "$2" rm temp.sh 然后,您可以按如下方式调用此脚本: bash shell_expansion.sh Text_File.msh Text_File_expanded.msh (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 如何修改AngularJS Bootstrap下拉/选择以使其不使用jQuery?
- [Angularjs]ng-show和ng-hide
- 这个Scala代码可以使用更少的内存吗?
- bootstrap页面完成后渲染数据
- axis2 写webservice服务 和 被调用 的整个过程
- typescript – 每当我在Angular 2中选择一个新选项时如何触
- Scala 2.10编译器在SBT中首次使用后需要长10倍
- 调试CXF WebService Client遇到的坑
- angularjs – Angular中的量角器测试:如何在没有ng-bind和
- 为引用类型传递null时Scala 2.7.x类型不匹配错误