首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Bash:执行并打印命令,就像我在终端中写的那样

Bash:执行并打印命令,就像我在终端中写的那样
EN

Stack Overflow用户
提问于 2017-05-23 23:50:42
回答 1查看 1.9K关注 0票数 0

已执行的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd ~ && mkdir mytmp && cd mytmp/
echo > somefile

并在bash脚本mytmp/myscript.sh中执行此操作。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash
# version 1
cmd="find . -type f -printf %f\n"
$cmd

呈现想要的结果,即:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
somefile
myscript.sh

注意,由于某些原因,我不需要用引号包围%f\n,就像在终端中编写命令时那样。这样做会产生不好的结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash
# version 2
cmd="find . -type f -printf '%f\n'"
$cmd

在以下方面的成果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
'somefile
''myscript.sh
'

我需要执行 $cmd,同时打印它,就像我把它写在终端中一样。

echo $cmd添加到version 1中可以正确地执行命令,但没有引用引用。

echo $cmd中添加version 2会像我想要的那样用引号回显命令,但是执行命令的结果很糟糕。

我怎样才能做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-23 23:53:17

其实我已经有了这个问题的答案,但是由于我“不小心”得到了我想要的东西,而且在搜索之后没有在网上找到答案,所以我想我还是把它发到这里吧。

解决方案是将引号包括在version 2中,并在执行命令时使用eval消除它们。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash
cmd="find . -type f -printf '%f\n'"
eval $cmd
echo $cmd
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44152200

复制
相关文章
linux 命令在终端能执行 丢进 crontab 就报错
易出错点:环境变量不同 解决方法:用上述 source 命令,使用当前用户环境变量,包括 alias、用户登录终端会做的一些初始化操作(如果 ~/.bash_profile 做的事情过多,这个命令一定程度上降低效率)
lukachen
2023/10/22
1720
linux 命令在终端能执行 丢进 crontab 就报错
bash 终端命令梳理
这些命令在类Unix系统上都是通用的,并不局限与 Mac 下。作为一个接触了 Linux 有一段时间的人,趁这个时间整理一下。
上山打老虎了
2022/06/14
8600
在终端打印地图
无意间突发奇想,能否在终端中打印地图,然后找到了一篇文章介绍,只需运行这行代码: $ telnet mapscii.me # 若未安装telnet需安装一下 $ yum install telnet
宋天伦
2020/07/19
7690
在终端打印地图
bash 和 zsh 命令行终端中的快捷键
bash 和 zsh 命令行终端都非常流行,后者尤为“精妙”。这两个终端的关键命令很相似,而对于经常使用它们的人来说,了解这些省时省力的快捷键命令 -- 大部分是用来对当前命令行进行快速导航或编辑的,将会事半功倍。
江米小枣
2021/08/18
2.5K0
终端循环执行命令
线上有一个接口,需要临时观察一下,http状态是否正常 手动重复执行,太累了,可以用shell脚本来完成 #!/bin/bash while true     do curl https://xx.
py3study
2018/08/02
4.7K0
Go 执行命令行并实时打印输出
golang可以获取命令执行的输出结果,但要执行完才能够获取。 如果执行的命令是ssh,我们要实时获取,并执行相应的操作呢? 示例
一个会写诗的程序员
2022/06/27
4.1K0
在bash中export命令作用是什么_bash:no such file or directory
export export命令将会使得被 export 的变量在运行的脚本(或shell)的所有的子进程中都可用. 不幸的是,没有办法将变量export 到父进程(就是调用这个脚本或shell 的进程)中. 关于export 命令的一个重要的使用就是用在启动文件中,启动文件是用来初始化并且 设置环境变量,让用户进程可以存取环境变量
全栈程序员站长
2022/10/02
3.3K0
PHP执行Shell脚本或Bash脚本文件并返回命令输出详情
system和exec函数可能被配置文件禁用,可以通过修改php配置文件删除被禁用的函数。
阿峰技术博客
2022/10/29
2.5K0
PHP执行Shell脚本或Bash脚本文件并返回命令输出详情
Bash执行命令显示进度和结果
@TOC Bash执行命令显示进度和结果 1.代码 #!/bin/bash #******************************************************** #Author: yangruitao #Date: 2021-02-01 #FileName: cmd_check.sh #******************************************************** #color.sh是我另一篇博客介绍的内容,感兴趣的朋友可以看看 . colo
程序员小涛
2021/02/02
1.9K0
Bash执行命令显示进度和结果
在python脚本中执行shell命令的方法
最近在写python的一些脚本,之前使用python都是在django中使用,可能大部分内容都是偏向于后端开发方面的,最近在写一些脚本的时候,发现了python的另外一种面貌,发现还挺有意思,分享一下,共大家参考。
AsiaYe
2019/12/18
5.4K0
Bash执行命令显示进度和结果
文章目录 Bash执行命令显示进度和结果 1.代码 2.测试效果 Bash执行命令显示进度和结果 1.代码 #!/bin/bash #************************************************************* #Author: yangruitao #Date: 2021-02-01 #FileName: system_check.sh #*******************************************************
程序员小涛
2021/12/06
1.1K0
Bash执行命令显示进度和结果
Linux 审计Bash执行命令 存储归档
history命令用于显示指定数目的指令命令,读取历史命令文件中的目录到历史命令缓冲区和将历史命令缓冲区中的目录写入命令文件。
Kevin song
2021/07/29
7K0
EmbedExeLnk - 在 LNK 中嵌入 EXE 并自动执行
我在野外看到了各种恶意 LNK 文件。这些链接文件通常执行下载外部有效负载的脚本(Powershell、VBScript 等)。
Khan安全团队
2022/02/24
2.2K0
在Linux使用Bash脚本命令
tee命令的默认行为是覆盖指定的文件,与>运算符相同。 要将输出附加到文件,请使用-a(--append)选项调用命令:
用户5005176
2021/08/10
2.1K0
(19)Bash多命令顺序执行与管道符
这样的命令有什么意义吗?其实这个命令在某些情况下可以简化操作,同时在"dd"命令中有一些用处。
生信real
2020/08/26
1.2K0
在 Linux 终端中退出一个程序的操作命令
在 Linux 中,你可以使用 Ctrl+C 键来中止终端中的运行程序。这对 Ubuntu 和其他 Linux 发行版都适用。
用户9105998
2021/11/22
5.3K0
【HTML打印】HTML直接调用window下的打印机并执行打印任务(简单打印任务生成)
---- 今天有个朋友问我咋调用打印机,打印页面。 -----------------来自小马哥的故事 ---- <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edg
IT小马哥
2020/03/18
2.7K0
mac 终端中显示 tree 的命令
寻觅了良久终于找到了mac下如何在终端显示tree的命令了,作为从linux下转过来的人,还没适应mac的finder,还是喜欢在命令行下查看文件。
the5fire
2019/03/01
1.2K0
linux删除打印队列中的打印任务lprm命令
lprm命令的英文全称是“Remove jobs from the print queue”,意为用于删除打印队列中的打印任务。尚未完成的打印机工作会被放在打印机贮列之中,这个命令可用来将未送到打印机的工作取消。
用户4988085
2021/07/24
3K0
点击加载更多

相似问题

从C程序中执行终端命令,并不像我期望的那样运行

44

打印终端别名命令并执行它

11

在awk内执行bash命令并打印命令输出。

24

Bash不能像我想要的那样工作

31

在bash中执行并记录命令

24
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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