幸运蛋蛋pc开奖
这篇文章主要给大家介绍了关于shell中长命令的换行处理方法,文中通过示例代码介绍的非常详细,对大家学习或者使用shell具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

前言

考察下面的脚本:

emcc -o ./dist/test.html --shell-file ./tmp.html --source-map-base dist -O3 -g4 --source-map-base dist -s MODULARIZE=1 -s "EXPORT_NAME=\"Test\"" -s USE_SDL=2 -s LEGACY_GL_EMULATION=1 --pre-js ./pre.js --post-js ./post.js --cpuprofiler --memoryprofiler --threadprofilermain.cpp

这里在调用 emcc 进行 WebAssembly 编译时,组织了很多参数。整个命令都在一行之中,不是很好阅读和维护。

换行

可通过加 \ 的方式来进行换行拆分。

?#33041;?#21518;看起来像这样,一个参数?#23478;?#34892;:

emcc -o ./dist/test.html\
 --shell-file ./tmp.html\
 --source-map-base dist\
 -O3\
 -g4\
 --source-map-base dist\
 -s MODULARIZE=1\
 -s "EXPORT_NAME=\"Test\""\
 -s USE_SDL=2\
 -s LEGACY_GL_EMULATION=1\
 --pre-js ./pre.js\
 --post-js ./post.js\
 --cpuprofiler\
 --memoryprofiler\
 --threadprofiler\
 main.cpp

注释

通过 \(backslash) 换行后,整体阅读体验好了很多。进一步,我们想要为每个参数添加注释,发现不能简单地这样来:

emcc -o ./dist/test.html\ # 目标文件
 --shell-file ./tmp.html\ # 模板文件
 --source-map-base dist\
 -O3\
 -g4\
 --source-map-base dist\
 -s MODULARIZE=1\
 -s "EXPORT_NAME=\"Test\""\
 -s USE_SDL=2\
 -s LEGACY_GL_EMULATION=1\
 --pre-js ./pre.js\
 --post-js ./post.js\
 --cpuprofiler\
 --memoryprofiler\
 --threadprofiler\
 main.cpp

这样会导致整个 shell 脚本解析失败。

实测发现,也不能这样:

emcc -o\
 # 目标文件
 ./dist/test.html\ 
  # 模板文件
 --shell-file ./tmp.html\
 --source-map-base dist\
 -O3\
 -g4\
 --source-map-base dist\
 -s MODULARIZE=1\
 -s "EXPORT_NAME=\"Test\""\
 -s USE_SDL=2\
 -s LEGACY_GL_EMULATION=1\
 --pre-js ./pre.js\
 --post-js ./post.js\
 --cpuprofiler\
 --memoryprofiler\
 --threadprofiler\
 main.cpp

同样会导致解析失败。

说到底,通过 \ 拆分的命令,只是呈现上变成了多行,其中插入的注释是会掉语义的。

但也不是没办法添加注释了,几经周转发现如下写法是可行的:

emcc -o ./dist/test.html `# 目标文件` \
 --shell-file ./tmp.html `# 模板文件` \
 --source-map-base dist `# source map 根路径` \
 -O3 `# 优化级别` \
 -g4 `# 生成 debug 信息` \
 --source-map-base dist\
 `# -s MODULARIZE=1\`
 -s "EXPORT_NAME=\"Test\""\
 -s USE_SDL=2\
 -s LEGACY_GL_EMULATION=1\
 --pre-js ./pre.js\
 --post-js ./post.js\
 --cpuprofiler\
 --memoryprofiler\
 --threadprofiler\
 main.cpp

即通过 `(backtick) 来包裹我们的注释,就?#25442;?big data-e="56C05Z2P">掉脚本的语义了,能够正?#26041;?#26512;执行。

进一步,解决了注释的问题,如果我们不想要某一行,同时又不想删除,可以像下面这样来注释:

emcc -o ./dist/test.html `# 目标文件` \
 --shell-file ./tmp.html `# 模板文件` \
 --source-map-base dist `# source map 根路径` \
 -O3 `# 优化级别` \
 -g4 `# 生成 debug 信息` \
 --source-map-base dist\
 -s MODULARIZE=1\
 -s "EXPORT_NAME=\"Test\""\
 -s USE_SDL=2\
 -s LEGACY_GL_EMULATION=1\
 `# --pre-js ./pre.js`\
 --post-js ./post.js\
 --cpuprofiler\
 `# --threadprofiler`\
 --memoryprofiler\
 main.cpp

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对爱安网的支持。

    无相关信息
最新资讯
“双十一”空调市场混战 降价放量后或带来消费透支

“双十一”空调市场混

与国庆?#24179;?#21608;遭遇“寒流”不同,空调市场在双十一终于“
“双十一”攻守道:多场景应用 下沉市场发力

“双十一”攻守道:多场

双十一不能绝对代表中国消费,它更多的是利用了购物的心
“双十一”金融机构众生相:争夺消费信贷庞大蛋糕

“双十一”金融机构众

相比信用卡机构侧重?#20013;?#25552;升支付安全性与便捷性,众多助
郭明錤:2019年Apple Watch出货量是2100-2300万部

郭明錤:2019年Apple Wa

2020年在苹果公司主要的硬件产品中,Apple Watch出货量
电商巨头鏖战“双十一”:下沉市场成为新战场

电商巨头鏖战“双十一

双十一不能绝对代表中国消费,它更多的是利用了购物的心
各平台战况:天猫2684亿京东2044亿 苏宁拼多多未公布

各平台战况:天猫2684

不过,在双11的计算时间上,各家电商平台的计算方法各有不
最新文章
shell脚本将Oracle服务器中数据定时增量刷新到ftp服务器中

shell脚本将Oracle服

这篇文章主要介绍了shell脚本将Oracle服务器中数据定
详解Linux ln 命令

详解Linux ln 命令

Linux 中的文件分为 Hard Link 和 Symbolic Link 两种
Linux 查看端口的占用情况并?#39029;?#24182;杀死占用进程的方法

Linux 查看端口的占用

这篇文章主要介绍了Linux 查看端口的占用情况并?#39029;?#24182;
shell中长命令的换行处理方法示例

shell中长命令的换行

这篇文章主要给大家介绍了关于shell中长命令的换行处
详解在dotnet core实现类似crontab的定时任务

详解在dotnet core实

这篇文章主要介绍了在dotnet core实现类似crontab的定
Linux忘记root密码进入单用户模式切换运行级别切换用户

Linux忘记root密码进

这篇文章主要介绍了Linux忘记root密码进入单用户模式
幸运蛋蛋pc开奖 老时时个位走势 双色球复式怎么算中奖 6码复式三中三多少组 闪电推怎么赚钱 捕鱼大师现金版下载链接 真人二人麻将下载 水果机爆机打法 AG鬼马小丑开奖视频 云顶娱乐安卓版1.8.0 四方棋牌官网app下载