首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >通过bash脚本执行编译器标志

通过bash脚本执行编译器标志
EN

Stack Overflow用户
提问于 2018-12-14 10:55:53
回答 1查看 253关注 0票数 0

我刚开始使用bash脚本。我需要执行接受java类文件并将其转换为dex文件的dx命令。在这里,我的java类文件是apple.class,希望输出classes.dex文件,用于转换的命令是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dx -JXmx256m --debug --dex --dump-to=apple.lst --output=classes.dex --dump-width=1000 apple.class

我想通过bash脚本执行这个命令。以下是我的方法:

script.sh

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
filelst="apple.lst"
filedex="classes.dex"
filecl="apple.class"

flag1="--dump-to=$file1st"
flag2="--output=$filedex"
flag3="--dump-width=1000 $filecl"
dx "--debug  --dex $flag1 $flag2 $flag3"

当我运行bash script.sh时,它会发送错误,显示运行dx命令的步骤。但是当我在没有bash脚本的情况下运行时,它成功执行了。请在bash脚本中帮助我编写正确的命令。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
error: no command specified                                                                                                                                
usage:                                                                                                                                                     
  dx --dex [--debug] [--verbose] ...
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-14 11:08:22

dx看到的是一个论点,而不是--debug--dex等的单独论点。通常的方法是不引用$flag1等:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dx --debug --dex $flag1 $flag2 $flag3

但是,如果任何嵌入选项都包含空格,那么这本身就有问题。

正确的解决方案是使用数组存储多个参数。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
filelst="apple.lst"
filedex="classes.dex"
filecl="apple.class"

flag1="--dump-to=$filelst"
flag2="--output=$filedex"
flag3=( --dump-width=1000 "$filecl")
dx --debug  --dex "$flag1" "$flag2" "${flag[@]}"

或者更简单

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
flags=(--dump-to="$filelst" --output="$filedex" --dump-width=1000 "$filecl")
dx --debug --dex "{$flags[@]}"
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53785430

复制
相关文章
SHELL(bash)脚本编程六:执行流程
bash命令的执行分为四大步骤:输入、解析、扩展和执行。 本文将详述bash命令的一般处理过程: 如图所示
用户5030870
2019/04/11
1.7K0
SHELL(bash)脚本编程六:执行流程
技术|通过 ssh 会话执行 bash 别名
我在远程主机上上设置过一个叫做file_repl的bash别名。当我使用ssh命令登录远程主机后,可以很正常的使用这个别名。然而这个bash别名却无法通过ssh来运行,像这样:
用户8710643
2021/07/12
6770
Apache 通过CGI执行脚本
告诉服务器cgi和pl后缀的文件都是cgi脚本,编写python脚本,并放入/var/www/cgi-bin/目录下
微软技术分享
2022/12/28
6740
bash脚本编程
编程语言: 编译器,解释器 编程语言:机器语言,汇编语言、高级语言 静态语言:编译型语言 强类型(变量) 关键字: 事先转换成可执行格式 c,c++,JAVA,C# 动态语言:解释型语言 on the fly 弱类型 边解释变执行 php,shell,python,perl(面向过程) ​ 面向对象:shell,c 面向对象:JAVA,Python,perl,C++ ​ bash:脚本解释器 编程能力: 脚本编程 变量:内存空间,命名的内存空间(可以回收) 内存:编址的存储
若与
2018/07/04
1.3K0
bash 脚本 learning
linux bash 脚本是个好东西,能用工具搞定的就尽量避免用手敲。这里记录下学习过程中的问题。
上山打老虎了
2022/06/14
4370
PHP执行Shell脚本或Bash脚本文件并返回命令输出详情
system和exec函数可能被配置文件禁用,可以通过修改php配置文件删除被禁用的函数。
阿峰技术博客
2022/10/29
2.5K0
PHP执行Shell脚本或Bash脚本文件并返回命令输出详情
pycharm编译器设置_bash python
打开 pyCharm,在 File -> Settings -> Tools -> External Tools 中点击 “+” 。
全栈程序员站长
2022/09/30
9250
pycharm编译器设置_bash python
bash脚本 while语法
基本语法(比较常见的两种形式): 只要特定条件为真,”while” 语句就会执行 while [ condition ] do command1 command2 command3 done 或者 while [ condition ]; do command1 command2 command3 done 说明:  行1,首先进行条件测试,如果传回值为0(条件测试为真),则进入循环,执行命令区域,否则 不进入循环,介绍while 命令  行3,执行命令区域,这些命令中,
joshua317
2018/04/16
8480
bash脚本 while语法
Bash脚本编程(原创)
Bash,Unix shell的一種,在1987年由布萊恩·福克斯為了GNU計劃而编写。1989年釋出第一個正式版本,原先是計劃用在GNU作業系統上,但能运行于大多数类Unix系统的操作系统之上,包括Linux與Mac OS X v10.4都將它作為預設shell。它也被移植到Microsoft Windows上的Cygwin與MinGW,或是可以在MS-DOS上使用的DJGPP專案。在Novell NetWare與Andriod在上也有移植。1990年後,Chet Ramey成为了主要的维护者。為Bourne shell的後繼相容版本與開放原始碼版本,它的名稱來自Bourne shell(sh)的一个双关语(Bourne again / born again):Bourne-Again SHell。
用户2645267
2018/08/04
1.4K0
常用bash脚本功能
参考:https://stackoverflow.com/questions/3601515/how-to-check-if-a-variable-is-set-in-bash
YP小站
2021/11/26
9000
Linux笔记------bash脚本
<https://www.runoob.com/linux/linux-shell-basic-operators.html
来杯Sherry
2023/05/25
1.7K0
Bash脚本编程之数组
array=( "${array[@]}" "new element" )或array[${#array[*]}]="new element"
枇杷李子橙橘柚
2019/05/26
7060
Bash脚本编程之引用
引用的意思是用引号括起一个字符串,以保护字符串中的特殊字符不被shell或shell脚本重新解释或扩展:
枇杷李子橙橘柚
2019/05/26
7950
Bash脚本编程之subshell
(command1;command2;command3;...)会启动子shell。子shell可以访问父shell的变量,对父shell变量的改动只在子shell中有效;子shell中定义的变量是局部变量,外部不能访问:
枇杷李子橙橘柚
2019/05/26
8600
bash 脚本中嵌入 expect
在 中执行一些命令时总是需要交互式的输入信息,如 等等,这可以起到提醒用户的作用,也更加保险。但是有的时候在执行自动化脚本时并不希望一直进行交互式的操作,所以 便显得极为有用。
f_zyj
2021/12/07
2.1K0
unix 的 bash shell 脚本
1. test01   test02 1 200    1 100 2 500    2 300 3 200    3 50 4 100    4 150 输出 200 100 100 500 300 200 300 50  150 100 150 -50 awk 减法数组 awk ‘ NR == FNR { a[NR]=$2 } NR != FNR { print a[FNR], $2,(a[FNR]-$2)} ' /root/test* 2. 123abc456 45
bear_fish
2018/09/20
1.5K0
《Bash 脚本教程》发布了
Bash 是 Linux 和 Mac 的默认 Shell(命令行环境),系统管理和服务器开发都需要它。虽然不难,但是语法很怪异,比如计算字符串的长度要写成${#varname},根本记不住,需要查手册。网上找不到简明扼要的中文教程,我很早就想整理一个,方便自己日后使用。
ruanyf
2020/04/17
9160
《Bash 脚本教程》发布了
Bash 脚本 set 命令教程
服务器的开发和管理离不开 Bash 脚本,掌握它需要学习大量的细节。 set命令是 Bash 脚本的重要环节,却常常被忽视,导致脚本的安全性和可维护性出问题。本文介绍它的基本用法,让你可以更安心地使用
ruanyf
2018/04/12
1.7K0
Bash 脚本 set 命令教程
Linux Bash脚本练习3
1.任务描述: 写一个脚本实现如下功能: manageuser.sh --add user1,user2,user3,... manageuser.sh --del user1,user2,user3,... manageuser.sh --help 要求,如果用户不存在,才能添加,并用户密码同用户名;如果delete存在用户,那么用户的家目录一同delete掉;提供--help进行用户提示。 #!/bin/bash # if [ $# -lt 1 ] ; then    echo "no arg
py3study
2020/01/14
2.5K0
Bash 脚本 set 命令教程
服务器的开发和管理离不开 Bash 脚本,掌握它需要学习大量的细节。 set命令是 Bash 脚本的重要环节,却常常被忽视,导致脚本的安全性和可维护性出问题。本文介绍它的基本用法,让你可以更安心地使
崔庆才
2018/06/25
1.5K0

相似问题

通过CGI执行bash脚本

10

通过php执行bash脚本

22

无法通过Bash脚本执行PHP脚本

10

通过ssh密钥将标志传递给bash脚本

10

通过bash脚本执行curl请求

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文