首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Unix Bash脚本正在运行,但没有输出

可能是由于以下几个原因:

  1. 脚本中没有输出语句:检查脚本中是否包含了输出语句,例如echo命令。如果脚本没有输出语句,那么就不会有任何输出。
  2. 输出被重定向到其他地方:脚本中的输出可能被重定向到了其他地方,例如文件或者其他命令。可以检查脚本中是否使用了重定向符号(>、>>)将输出发送到其他地方。
  3. 脚本没有执行权限:确保脚本具有执行权限。可以使用chmod命令给脚本添加执行权限,例如chmod +x script.sh。
  4. 脚本中出现错误:脚本中可能存在语法错误或逻辑错误,导致脚本无法正常执行。可以使用shellcheck等工具检查脚本的语法和潜在问题。
  5. 脚本陷入死循环或长时间运行:脚本可能陷入了无限循环或者执行时间过长,导致没有输出。可以检查脚本的逻辑,确保没有无限循环,并且尝试给脚本设置合理的超时时间。

如果以上方法都无法解决问题,可以尝试在脚本中添加调试信息,例如使用set -x命令开启调试模式,或者在关键位置添加echo语句输出中间结果,以便定位问题所在。

腾讯云相关产品推荐:

请注意,以上推荐的腾讯云产品仅供参考,具体选择应根据实际需求进行。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

shell脚本对编码和行尾符敏感吗

问: 我正在macOS上制作一个NW.js应用程序,并想通过双击图标在开发模式下运行该应用程序。在第一步中,我试图使我的shell脚本正常工作。...我输入了完全相同的指令,然后...现在它工作起来没有任何问题。 用 diff 对比两个文件的差异显示完全没有差异。 有什么区别?是什么导致第一个脚本无法运行?我怎样才能知道? 答: 是的。...Bash脚本对行结束很敏感,无论是在脚本本身还是在它处理的数据中。它们应该有Unix风格的行结束符,即每行以换行符结束(ASCII中的十进制10,十六进制0A)。...Bash将shebang之后的第一行(由一个回车字符组成)解释为要运行的命令/程序的名称。...因为没有名为^M的命令,所以它输出: command not found 因为没有名为"src"^M(或src^M)的目录,所以它输出: no such file or directory 它将install

15020

解决bash syntax error near unexpected token from

Bash脚本中有一些特殊字符或符号(如​​$​​、​​(​​、​​)​​等),如果没有正确转义或引用,就会导致语法错误。...通过这些方法,我们可以成功解决这个问题,使得Bash脚本运行无误。假设我们正在编写一个Bash脚本,用于统计一个文件夹中所有文件的行数,并输出总行数。以下是示例代码:bashCopy code#!...Bash是许多Linux和Unix系统中默认的命令行解释器,因此Bash脚本在这些系统上得到广泛的应用。...Bash脚本是一种直接在命令行环境下运行脚本,它不需要编译或链接过程,可以通过命令行或脚本文件直接运行。...跨平台性:Bash脚本可以在各种Linux/Unix系统上运行,并且可以通过安装Bash解释器在其他平台上运行

39830

从npm、npx说起,到shell

背景:目前整个我们前端工程栈有多处 CLI(包括工具、模板等等),CLI 带来了巨大的便利性,其在 Windows 下执行往往和 Mac/Unix 系统下表现不同。...如果Command1命令运行失败,则继续运行Command2命令 命令 说明 echo 在屏幕输出一行文本,可以将该命令的参数原样输出 -n:可以取消末尾的回车符,使得下一个提示符紧跟在输出内容的后面...后面就是脚本解释器的位置,Bash 脚本的解释器一般是/bin/sh或/bin/bash。 #!/bin/sh # 或者 #!/bin/bash #!与脚本解释器之间有没有空格,都是可以的。...错误处理 如果脚本里面有运行失败的命令(返回值非0),Bash 默认会继续执行后面的命令(只是显示有错误,并没有终止执行)。 这种行为很不利于脚本安全和除错。.../usr/bin/env bash set -euxo set -u:遇到不存在的变量就会报错,并停止执行(默认忽略跳过) set -x:在运行结果之前,先输出执行的那一行命令(默认情况下,脚本执行后,

3.8K20

Linux 命令行的艺术

本文主要关注于交互式 Bash,但也有很多技巧可以应用于其他 shell 和 Bash 脚本当中。 除去“标准的”Unix 命令,本文还包括了一些依赖于特定软件包的命令(前提是它们具有足够的价值)。...Bash 变量要用引号括起来,比如 " 在 Bash 脚本中,使用 set -x 去调试输出(或者使用它的变体 set -v,它会记录原始输入,包括多余的参数和注释)。...但是永远不要在不信任的文件上运行。 了解如何运用 gdb 连接到一个运行着的进程并获取它的堆栈轨迹。 学会使用 /proc。它在调试正在出现的问题的时候有时会效果惊人。...如果你删除了一个文件,通过 du 发现没有释放预期的磁盘空间,请检查文件是否被进程占用: lsof | grep deleted | grep "filename-of-my-big-file" 单行脚本...然而 MSYS 提供的功能没有 Cygwin 完善。MinGW 在创建 Unix 工具的 Windows 原生移植方面非常有用。

4.5K10

一篇文章学习 linux 命令

本文主要关注于交互式 Bash,但也有很多技巧可以应用于其他 shell 和 Bash 脚本当中。 除去“标准的”Unix 命令,本文还包括了一些依赖于特定软件包的命令(前提是它们具有足够的价值)。...在 Bash 脚本中,使用 set -x 去调试输出(或者使用它的变体 set -v,它会记录原始输入,包括多余的参数和注释)。...但是永远不要在不信任的文件上运行。 了解如何运用 gdb 连接到一个运行着的进程并获取它的堆栈轨迹。 学会使用 /proc。它在调试正在出现的问题的时候有时会效果惊人。...如果你删除了一个文件,通过 du 发现没有释放预期的磁盘空间,请检查文件是否被进程占用: lsof | grep deleted | grep "filename-of-my-big-file" 单行脚本...然而 MSYS 提供的功能没有 Cygwin 完善。MinGW 在创建 Unix 工具的 Windows 原生移植方面非常有用。

2.2K22

shell脚本的调试

提示: 脚本不是你写的或者windows下开发的脚本,你检查脚本明明没有问题,就是执行出现错误,要想到执行dos2unix格式化下。 好习惯:每次写脚本都执行dos2unix格式化下。...dos2unix 使用bash命令参数调试 [root@localhost ~]# sh [-nvx] add.sh 参数: -n:不会执行该脚本,仅查询脚本语法是否有问题,并给出错误提示。...-v:在执行脚本时,先将脚本的内容输出到屏幕上然后执行脚本,如果有错误也会给出错误提示 -x:将执行的脚本内容及输出显示屏幕上,这个是对调试很有用的参数。...使用set命令调试部分脚本内容 set命令可辅助脚本调试,以下是set命令常用的调试选项: set -n 读命令并不执行 set -v 显示读取的所有行 set -x 显示所有命令及其参数。...Shell帮助与资料推荐 http://www.gnu.org/software/bash/manual/bash.html man bash Unix Shell 范例精解(第4版)老男孩推荐 Unix

57420

linux下的shell脚本编程

Unix/Linux上常见的Shell脚本解释器有bash、sh、csh、ksh等,习惯上把它们称作一种Shell。我们常说有多少种Shell,其实说的是Shell脚本解释器。...是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shell。通常/bin/sh是指向/bin/bash的。 后面的字符 # 表示注释,#后面的内容将被忽略。...echo命令用于向窗口输出文本。 运行Shell脚本有两种方法。 作为可执行程序 将上面的代码保存为test.sh,并 cd 到相应目录: $ chmod +x ....通过这种方式运行bash脚本,第一行一定要写对,好让系统查找到正确的解释器。.../bin/sh myUrl="http://see.xidian.edu.cn/cpp/u/xitong/" unset myUrl echo $myUrl 上面的脚本没有任何输出

2.3K20

GitHub 60000+ Star 登顶,命令行的艺术!

本文主要关注于交互式 Bash,但也有很多技巧可以应用于其他 shell 和 Bash 脚本当中。 除去“标准的”Unix 命令,本文还包括了一些依赖于特定软件包的命令(前提是它们具有足够的价值)。...在 Bash 脚本中,使用 set -x 去调试输出(或者使用它的变体 set -v,它会记录原始输入,包括多余的参数和注释)。...在所有路径下通过文件名查找文件,使用 locate something (注意到 updatedb 可能没有对最近新建的文件建立索引,所以你可能无法定位到这些未被索引的文件)。...但是永远不要在不信任的文件上运行。 了解如何运用 gdb 连接到一个运行着的进程并获取它的堆栈轨迹。 学会使用 /proc。它在调试正在出现的问题的时候有时会效果惊人。...然而 MSYS 提供的功能没有 Cygwin 完善。MinGW 在创建 Unix 工具的 Windows 原生移植方面非常有用。

90620

GitHub 60000+ Star 登顶,命令行的艺术!

本文主要关注于交互式 Bash,但也有很多技巧可以应用于其他 shell 和 Bash 脚本当中。 除去“标准的”Unix 命令,本文还包括了一些依赖于特定软件包的命令(前提是它们具有足够的价值)。...在 Bash 脚本中,使用 set -x 去调试输出(或者使用它的变体 set -v,它会记录原始输入,包括多余的参数和注释)。...在所有路径下通过文件名查找文件,使用 locate something (注意到 updatedb 可能没有对最近新建的文件建立索引,所以你可能无法定位到这些未被索引的文件)。...但是永远不要在不信任的文件上运行。 了解如何运用 gdb 连接到一个运行着的进程并获取它的堆栈轨迹。 学会使用 /proc。它在调试正在出现的问题的时候有时会效果惊人。...然而 MSYS 提供的功能没有 Cygwin 完善。MinGW 在创建 Unix 工具的 Windows 原生移植方面非常有用。

74220

GitHub 60000+ Star 登顶,命令行的艺术!

本文主要关注于交互式 Bash,但也有很多技巧可以应用于其他 shell 和 Bash 脚本当中。 除去“标准的”Unix 命令,本文还包括了一些依赖于特定软件包的命令(前提是它们具有足够的价值)。...在 Bash 脚本中,使用 set -x 去调试输出(或者使用它的变体 set -v,它会记录原始输入,包括多余的参数和注释)。...在所有路径下通过文件名查找文件,使用 locate something (注意到 updatedb 可能没有对最近新建的文件建立索引,所以你可能无法定位到这些未被索引的文件)。...但是永远不要在不信任的文件上运行。 了解如何运用 gdb 连接到一个运行着的进程并获取它的堆栈轨迹。 学会使用 /proc。它在调试正在出现的问题的时候有时会效果惊人。...然而 MSYS 提供的功能没有 Cygwin 完善。MinGW 在创建 Unix 工具的 Windows 原生移植方面非常有用。

77910

G站 50000+ Star 登顶,这份命令行艺术请查收!

本文主要关注于交互式 Bash,但也有很多技巧可以应用于其他 shell 和 Bash 脚本当中。 除去“标准的”Unix 命令,本文还包括了一些依赖于特定软件包的命令(前提是它们具有足够的价值)。...在 Bash 脚本中,使用 set -x 去调试输出(或者使用它的变体 set -v,它会记录原始输入,包括多余的参数和注释)。...在所有路径下通过文件名查找文件,使用 locate something (注意到 updatedb 可能没有对最近新建的文件建立索引,所以你可能无法定位到这些未被索引的文件)。...但是永远不要在不信任的文件上运行。 了解如何运用 gdb 连接到一个运行着的进程并获取它的堆栈轨迹。 学会使用 /proc。它在调试正在出现的问题的时候有时会效果惊人。...然而 MSYS 提供的功能没有 Cygwin 完善。MinGW 在创建 Unix 工具的 Windows 原生移植方面非常有用。 ? 十、更多资源 ?

80110

命令行的艺术

Bash 脚本中,使用 set -x 去调试输出(或者使用它的变体 set -v,它会记录原始输入,包括多余的参数和注释)。...在所有路径下通过文件名查找文件,使用 locate something(注意到 updatedb 可能没有对最近新建的文件建立索引,所以你可能无法定位到这些未被索引的文件)。...但是永远不要在不信任的文件上运行。 了解如何运用 gdb 连接到一个运行着的进程并获取它的堆栈轨迹。 学会使用 /proc。它在调试正在出现的问题的时候有时会效果惊人。...如果你删除了一个文件,通过 du 发现没有释放预期的磁盘空间,请检查文件是否被进程占用: lsof | grep deleted | grep "filename-of-my-big-file" 单行脚本...然而 MSYS 提供的功能没有 Cygwin 完善。MinGW 在创建 Unix 工具的 Windows 原生移植方面非常有用。

91821

命令行的艺术 (GitHub 星标 6 万多)

Bash 脚本中,使用 set -x 去调试输出(或者使用它的变体 set -v,它会记录原始输入,包括多余的参数和注释)。...在所有路径下通过文件名查找文件,使用 locate something(注意到 updatedb 可能没有对最近新建的文件建立索引,所以你可能无法定位到这些未被索引的文件)。...但是永远不要在不信任的文件上运行。 了解如何运用 gdb 连接到一个运行着的进程并获取它的堆栈轨迹。 学会使用 /proc。它在调试正在出现的问题的时候有时会效果惊人。...如果你删除了一个文件,通过 du 发现没有释放预期的磁盘空间,请检查文件是否被进程占用: lsof | grep deleted | grep "filename-of-my-big-file"...然而 MSYS 提供的功能没有 Cygwin 完善。MinGW 在创建 Unix 工具的 Windows 原生移植方面非常有用。

69921

命令行的艺术 (GitHub 星标 6 万多)

Bash 脚本中,使用 set -x 去调试输出(或者使用它的变体 set -v,它会记录原始输入,包括多余的参数和注释)。...在所有路径下通过文件名查找文件,使用 locate something(注意到 updatedb 可能没有对最近新建的文件建立索引,所以你可能无法定位到这些未被索引的文件)。...但是永远不要在不信任的文件上运行。 了解如何运用 gdb 连接到一个运行着的进程并获取它的堆栈轨迹。 学会使用 /proc。它在调试正在出现的问题的时候有时会效果惊人。...如果你删除了一个文件,通过 du 发现没有释放预期的磁盘空间,请检查文件是否被进程占用: lsof | grep deleted | grep "filename-of-my-big-file"...然而 MSYS 提供的功能没有 Cygwin 完善。MinGW 在创建 Unix 工具的 Windows 原生移植方面非常有用。

1.6K62

命令行的艺术

Bash 脚本中,使用 set -x 去调试输出(或者使用它的变体 set -v,它会记录原始输入,包括多余的参数和注释)。...在所有路径下通过文件名查找文件,使用 locate something(注意到 updatedb 可能没有对最近新建的文件建立索引,所以你可能无法定位到这些未被索引的文件)。...但是永远不要在不信任的文件上运行。 了解如何运用 gdb 连接到一个运行着的进程并获取它的堆栈轨迹。 学会使用 /proc。它在调试正在出现的问题的时候有时会效果惊人。...如果你删除了一个文件,通过 du 发现没有释放预期的磁盘空间,请检查文件是否被进程占用: lsof | grep deleted | grep "filename-of-my-big-file" 单行脚本...然而 MSYS 提供的功能没有 Cygwin 完善。MinGW 在创建 Unix 工具的 Windows 原生移植方面非常有用。

1K50

用 Linux 的 watch 命令观察命令和任务

其中一些进程有进度指示,但有时进程是通过一层抽象运行的,衡量进度的唯一方法是通过其副作用。其中一些可能是: 一个正在下载的文件不断增长。 一个从 tarball 中提取的目录被文件填满了。...你可以用这样的命令查询所有这些: $ ls -l downloaded-file $ find . | wc -l $ podman ps $ docker ps 但是反复运行这些命令,即使是利用 Bash...另一种方法是写一个小的 Bash 脚本来为你自动执行这些命令: while : do docker ps sleep 2 done 这样的脚本写起来也会很繁琐。...使用 watch watch 命令定期运行一个命令并显示其输出。它有一些文本终端的特性,所以只有最新的输出才会出现在屏幕上。 最简单的用法是:watch 。...如果变化是预期的,你想让一些东西看起来“不同”,watch --differences 就很好用。它可以高亮显示与上次运行的任何差异。

81820

用 Linux 的 watch 命令观察命令和任务

其中一些进程有进度指示,但有时进程是通过一层抽象运行的,衡量进度的唯一方法是通过其副作用。其中一些可能是: 一个正在下载的文件不断增长。 一个从 tarball 中提取的目录被文件填满了。...你可以用这样的命令查询所有这些: $ ls -l downloaded-file$ find . | wc -l$ podman ps$ docker ps 但是反复运行这些命令,即使是利用 Bash...另一种方法是写一个小的 Bash 脚本来为你自动执行这些命令: while :do docker ps sleep 2done 这样的脚本写起来也会很繁琐。...使用 watch watch 命令定期运行一个命令并显示其输出。它有一些文本终端的特性,所以只有最新的输出才会出现在屏幕上。 最简单的用法是:watch 。...如果变化是预期的,你想让一些东西看起来“不同”,watch --differences 就很好用。它可以高亮显示与上次运行的任何差异。

1.5K10

BashShell变量

如果专门查询该元素会发现,其实不是真的把该索引对应的数组元素剔除了,而是把它置空了,因此显示该元素时打印了空值,所以显示结果相看起来是没有该元素的。...默认的 Shell 环境变量 Bash Shell 源自早期的 Unix Bourne Shell,因此继承了 Unix Bourne Shell 定义的一些默认的环境变量。...BASH_CMDS 关联数组,包含 Shell 执行过的命令的所在位置 BASH_COMMAND Shell 正在执行的命令或马上就执行的命令 BASH_ENV 若设置了该变量,每个 Bash 脚本会在运行前先尝试运行该变量定义的启动文件...,而行编辑功能被禁止 ENV 如果设置了该环境变量,在 Bash Shell 脚本运行之前会先执行已定义的启动文件(仅用于当 Bash Shell 以 POSIX 模式被调用时) EUID 当前用户的有效用户.../bin/bash main() { echo 'MAIN sees ' $# ' args' } main $* main $@ main "$*" main "$@" 然后运行脚本文件

2.4K30

蓝桥ROS机器人之命令行实践

本文主要关注于交互式 Bash,但也有很多技巧可以应用于其他 shell 和 Bash 脚本当中。 除去“标准的”Unix 命令,本文还包括了一些依赖于特定软件包的命令(前提是它们具有足够的价值)。...在 Bash 脚本中,使用 set -x 去调试输出(或者使用它的变体 set -v,它会记录原始输入,包括多余的参数和注释)。...但是永远不要在不信任的文件上运行。 了解如何运用 gdb 连接到一个运行着的进程并获取它的堆栈轨迹。 学会使用 /proc。它在调试正在出现的问题的时候有时会效果惊人。...如果你删除了一个文件,通过 du 发现没有释放预期的磁盘空间,请检查文件是否被进程占用: lsof | grep deleted | grep "filename-of-my-big-file" 单行脚本...然而 MSYS 提供的功能没有 Cygwin 完善。MinGW 在创建 Unix 工具的 Windows 原生移植方面非常有用。

80820
领券