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

当尝试从通过java进程执行的shell脚本保存该文件时,该文件始终为空

当尝试通过Java进程执行的shell脚本保存该文件时,该文件始终为空的原因可能有多种。以下是可能的原因和解决方法:

  1. 权限问题:请确保Java进程有足够的权限来执行shell脚本和保存文件。可以使用chmod命令为脚本文件添加执行权限,例如:chmod +x script.sh
  2. 文件路径问题:请确保脚本中指定的文件路径是正确的,并且Java进程有权限在该路径下创建文件。可以尝试使用绝对路径来保存文件,例如:/path/to/file.txt
  3. 脚本执行问题:请确保shell脚本能够正常执行并生成文件。可以尝试在终端中直接执行脚本,检查是否能够生成文件。如果脚本中有依赖其他命令或环境变量,请确保这些依赖项在Java进程执行时也是可用的。
  4. 文件写入问题:请确保在脚本中使用正确的命令将内容写入文件。常见的命令包括echo、printf等。可以尝试在脚本中添加一些调试信息,例如输出一些文本内容,以确认脚本是否被正确执行。
  5. Java代码问题:请确保Java代码正确地调用了shell脚本,并且正确处理了脚本执行的结果。可以使用Java的ProcessBuilder类来执行shell脚本,并通过获取脚本的输出流来读取执行结果。

总结起来,解决该问题的关键是排查并解决权限、路径、脚本执行和Java代码等方面的问题。如果问题仍然存在,建议逐步调试和排查,可以尝试简化脚本和Java代码,以确定具体出错的地方。

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

相关·内容

BashShell变量

,虽然直接显示整个数组变量是没有被删除元素,但如果专门查询元素会发现,其实不是真的把索引对应数组元素剔除了,而是把它置空了,因此显示元素打印了值,所以显示结果相看起来是没有元素。...BASH_CMDS 关联数组,包含 Shell 执行命令所在位置 BASH_COMMAND Shell 正在执行命令或马上就执行命令 BASH_ENV 若设置了变量,每个 Bash 脚本会在运行前先尝试运行变量定义启动文件...含有目录栈当前内容数组变量 EMACS 设置 t ,表明 emacs Shell 缓冲区正在工作,而行编辑功能被禁止 ENV 如果设置了环境变量,在 Bash Shell 脚本运行之前会先执行已定义启动文件...,环境变量决定了所采用语言环境设置 LC_NUMERIC 决定着格式化数字采用语言环境设置 LINENO 当前执行脚本行号 LINES 定义了终端上可见行数 MACHTYPE 用「CPU-... * 用双引号括起,即 " 6.4 $@ @ 未用双引号括起,即 @:等同于 @ 用双引号括起,即 " 【注】* 和 @ 使用很容易混淆,为了更好地理解可以参见以下例子: 首先定义脚本文件

2.4K30

了解和学习基本Shell脚本和Linux文件系统疑难解答 - 第10部分

它被称为环境变量,因为它是shell环境一部分 - shell首次启动,一组可用于shell及其子进程信息。...如果我们还没有保存在里面的$ PATH变量中列出目录之一,我们脚本,我们需要追加./到文件名,以执行它。 否则,我们可以像使用常规命令那样运行它。 # pwd # ....[-k文件]→文件存在,并且其粘位。 [-r文件]→文件存在并且可读。 [-s文件]→文件存在且不是。 [-w文件]→文件存在且可写。 如果文件存在且可执行[-x文件]是真实。...然后将输出通过管道传递到grep。 -quiet标志用于防止grep显示在屏幕上,其中运行出现线条。 发生这种情况,上面的命令返回0退出状态(由$表示?...此外,每次系统在正常引导期间引导,它始终在安装文件系统之前检查文件系统完整性。 在这两种情况下,这是使用fsck命名工具(“ 文件系统检查 ”)执行

71820
  • 一、问题

    本文joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/265 一、问题 通过jenkins执行shell脚本,.../usr/local/joshua317-test-core-1.0-SNAPSHOT.jar & 也就是说通过Jenkins构建完后推送到业务服务器,在执行脚本脚本 nohup 命令无法正常退出...命令 “nohup java -jar xxx.jar > nohup.out &” 部分,表示不挂断运行命令,账户退出或终端关闭,程序仍然运行,并且作业所有输出被重定向到nohup.out文件中...文件描述符0,Unix程序默认stdin读取数据。...屏蔽输出,起到禁止输出作用:/dev/null 是一个特殊文件,写入到它内容都会被丢弃;如果尝试文件读取内容,那么什么也读不到。

    1.2K10

    Linux学习笔记(四)

    但是,这种方式创建变量是临时,当前shell进程结束之后就会失效。 要想永久保存自定义变量,可以根据shell启动过程,修改其启动需要读取命令文件。 如下面几个文件。...非交互式shell启动进程,它会检查这个BASH_SHELL环境变量,读取是环境变量所指定配置文件。...shell执行命令所在位置 BASH_COMMAND shell正在执行命令或马上就执行命令 BASH_ENV 设置了的话,每个bash脚本会在运行前先尝试运行变量定义启动文件 BASH_EXECUTION_STRING...t’ ,表明emacs shell缓冲区正在工作,而行编辑功能被禁止 ENV 如果设置了环境变量,在bash shell脚本运行之前会先执行已定义启动文件(仅用于bash shell以IPOSIX...HISTFILE 保存shell历史记录列表文件名(默认是bash history) hISTFILESIZe 最多在历史文件中存多少行 HISTTIMEFORMAT 如果设置了且非,就用作格式化字符串

    1.1K10

    Linux命令之Crontab——定时任务

    rontab命令被用来提交和管理用户需要周期性执行任务,与windows下计划任务类似,安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行任务...,普通环境变量是无法识别的,所以在编写shell,最好使用export重新声明变量,确保脚本执行。...shell,这里是bash,第二行PATH变量指定了系统执行命令路径,第三行MAILTO变量指定了crond任务执行信息将通过电子邮件发送给root用户,如果MAILTO变量,则表示不发送任务执行信息给用户...所以注意如下3点: 1)脚本中涉及文件路径写全局路径; 2)脚本执行要用到java或其他环境变量通过source命令引入环境变量,如: cat start_cbp.sh #!...crontab突然失效,可以尝试/etc/init.d/crond restart解决问题。或者查看日志看某个job有没有执行/报错tail -f /var/log/cron。

    1.2K10

    linux

    shell 世界大门  $美元符号, 表示shell等待用户输入;正斜线/  反斜线\ bash 手册: Ctrl+c组合键: 同时按下键盘上Ctrl和字母c时候,意味着终止当前进程运行...用来告诉系统使用哪种Shell解释器来执行脚本;------bash 解释器 第二行注释信息(#)是对脚本功能和某些命令介绍信息,使得自己或他人在日后看到这个脚本内容,可以快速知道脚本作用或一些警告信息...; 第三、四行执行语句也就是我们平时执行Linux命令了 除过运用Bash来运行Shell脚本以外,还可以通过直接运行文件执行。...------->通过shell解释器内设$?变量展示上一条命令执行返回值。如果0,则目录存在。如果非0,则意味着不是目录。或目录不存在。...答:应该包括脚本声明、注释信息和可执行语句(即命令)。 4.分别解释Shell脚本中$0与$3变量作用。 答:在Shell脚本中,$0代表脚本文件名称,$3则代表脚本执行时接收第3个参数。

    1.4K51

    linux shell编程学习笔记(3)

    变量名=变量值//将要定义变量定义全局变量 export其实就是声明一下这个变量意思,让shellshell也知道这个变量变量值.如果export后面不加任何变量名,则它会声明所有的变量...每个用户都可使用该文件输入专用于自己使用shell信息,当用户登录,该文件仅仅执行一次 (2)~/.bash_profile ——该文件包含专用于你shellbash信息,登录以及每次打开新...shell,文件被读取。...——系统在其他读取系统配置文件定义变量,一般系统环境变量大小字母。...127                     ——代表上条执行命令不存在 (3)$0 ——保存当前运行进程名或脚本名。

    71320

    渗透神器Cobalt Strike使用教程

    :${JAVA_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH 保存退出 执行 source ~/.bashrc 安装并注册 update-alternatives...Close #退出连接 View Applications #显示受害者机器应用信息 Credentials #凭证通过 hashdump 或者 Mimikatz 抓取过密码都会储存在这里...选择payload类型 hostshell反弹接受主机(服务端IP) port反弹端口 监听器作用很简单,主要是为了接受payload回传各类数据 比如,我们payload在目标机器执行以后...beaconshell给cs shell所支持通信协议主要包括这几种,dns,https,http,smb[pipe],另外,beacon shell内置功能也非常多 foreign 主要是提供给外部使用一些监听器...,此时就可以任务列表中看到其所对应具体任务id,针对性清除 jobkill 如果发现任务不知是何原因长时间没有执行或者异常,可尝试用此命令直接结束任务, jobkill 1345 clear

    2K20

    【趣学程序】Linux基础命令

    /lost+found:这个目录一般情况下是系统非法关机后,这里就存放了一些文件。.../proc:这个目录是一个虚拟目录,它是系统内存映射,我们可以通过直接访问这个目录来获取系统信息。/root:目录系统管理员,也称作超级权限者用户主目录。...Shell还是一个功能相当强大编程语言,易编写、易调试、灵活性强。Shell是解释执行脚本语言,在Shell中可以调用Linux系统命令。 ?...“”包含,都以 $1 $2…$n形式输出所有参数 b)它们被双引号“”包含,“$*”会将所有的参数作为一个整体,以 “$1 $2…$n”形式输出所有参数;“$@”会将各个参数分开,以 “$1”.../bin/bash#输出当前进程PID,这个PID就是当前这个脚本执行时,生成进程PIDecho "The current process is $$" #使用find命令在root目录下查找hello.sh

    2K11

    shell programming tutorial

    一、什么是shell程序 以文件形式存放批量Linux命令集合,该文件能够被Shell解释执行,这种文件就是Shell脚本程序 通常由一段Linux命令、Shell命令、控制语句以及注释语句构成 Shell...执行 shell 脚本,用户可以通过命令行向脚本传递信息,跟在脚本名后面的用空格隔开每个字符串都称为位置参量。 在脚本中使用这些参数,需通过位置参量来引用。...commands 执行语句块,如果,需使用 shell 提供命令 “ : ”,即冒号。命令不做任何事情,只返回一个退出状态 0  if 语句可以嵌套使用。...n 是一个 0 到 255 整数,0 表示成功退出,非零表示遇到某种失败而非正常退出。整数被保存在状态变量 $? 中。...文件名  //类似文件包含,也可以使用source。 这两个命令都以一个脚本参数,脚本将作为当前shell环境执行,即不会启动一个新进程

    1.4K90

    Linux进程管理

    超级服务器启动后同时监听它所管理服务所有端口 有客户提出服务请求 超级服务器会判断这是对哪一个服务请求,然后再开启与此服务相应守护进程 由超级服务器产生某服务进程处理客户请求,处理结束便终止此服务进程...telnet服务配置文件修改时候,xinetd服务需要知道配置文件变化,重新启动会重新读取配置文件内容,使之生效。 Telnet为什么可以看到脚本程序执行结果?...编辑一个文件myatXX(XX学生学号末两位),要求按顺序执行如下命令:返回用户主目录;查看用户账户名;查看当前系统运行所有进程,并将记录保存文件ps.log中;添加一个计划任务,要求下午5点执行文件命令...添加一个脚本,要求:每月执行任务,查找/home目录下30天没有修改文件,并删除它;脚本名称为clean-home ? ? ? ?...atd服务只是myatXX文件中读取内容,真正执行命令会存放在另外一个文件,我们用at -c命令可以看到这个真正执行文件内容。 脚本放在哪个目录下?脚本需要添加可执行属性吗?

    6.8K00

    shell基础

    # 3. shell脚本 # 1、什么是shell脚本? 一句话概括简单来说就是将需要执行命令保存到文本中,按照顺序执行。它是解释型,意味着不需要编译。...重复化、复杂化工作,通过把工作命令写成脚本,以后仅仅需要执行脚本就能完成这些工作。 # 3、 shell脚本能干啥?.../tmp/shell/example.sh 说明:前面两种方法执行shell脚本都是在当前shell(称为父shell)中开启一个子shell环境中去执行shell脚本执行完后子shell环境随即关闭...而方法3则是在当前shell执行。 # 二、变量定义 # 1. 变量是什么? 一句话概括:变量是用来临时保存数据数据是可以变化数据。 # 2. 什么时候需要定义变量?...新变量值} 变量没有被赋值或者赋:提示错误信息 变量被赋值:不会使用“新变量值“ 替代 说明:?主要是变量没有赋值提示错误信息,没有赋值功能

    1.8K30

    网站安全维护公司对渗透测试详情

    另外,在后面加个$可以起到截断作用,一般用$9,因为$9是当前系统shell进程第九个参数持有者,它始终空字符串 3.5.5.2.....\ >com ls -t>a sh a 上面的方法通过命令行重定向写入命令,接着通过ls按时间排序把命令写入文件,最后执行 直接在Linux终端下执行的话,创建文件需要在重定向符号之前添加命令 这里可以使用一些诸如...文件 3.7.1.5. .user.ini 在php执行过程中,除了主 php.ini 之外,PHP 还会在每个目录下扫描 INI 文件执行 PHP 文件所在目录开始一直上升到 web 根目录...如果被执行 PHP 文件在 web 根目录之外,则只扫描目录。....竞争上传绕过 有的服务器采用了先保存,再删除不合法文件方式,在这种服务器中,可以反复上传一个会生成Web Shell文件尝试访问,多次之后即可获得Shell。 3.7.2.

    1.6K00

    Shell特殊变量和命令行参数详解

    :~:/usr EDITOR:内置编辑器emacs、gmacs或vi路径名 ENV:每一个新bash shell(包括脚本)启动执行环境文件。通常赋予这个变量文件名是.bashrc。...EUID:展开shell启动被初始化的当前用户有效ID GROUPS:当前用户所属组 HISTFILE:指定保存命令行历史文件。默认值是~/.bash_history。...如果被复位,交互式shell退出将不保存命令行历史 HISTSIZE:记录在命令行历史文件命令数。默认是500 HOME:主目录。...5.特殊变量 $0:当前脚本文件名 $num:num1开始数字,$1是第一个参数,$2是第二个参数,${10}是第十个参数 $#:传入脚本参数个数 $*:所有的位置参数(作为单个字符串)...:当前shell进程中,上一个命令返回值,如果上一个命令成功执行则$?0,否则为其他非零值,常用做if语句条件 $$:当前shell进程pid $!

    2.5K60

    Linux shell编程常用方法总结

    1. shell是什么 shell通过c语言编写,是用户和Linux之间接口程序。编写shell脚本方便于系统管理。...PS1 主提示符 # $PS2 辅助提示符 在输入行末尾 \ 输出提示符IFS shell指定缺省域分割符LOGNAME 保存登录名SHELL 保存缺省shellRANDOM 产生随机数 数组变量...fi 文件测试 “-e 文件存在则为真 -r 文件存在且可读真 -w 文件存在且可写真 -x 文件存在且可执行为真 -s 文件存在且非真 -d 文件存在且为目录真 -f 文件存在且为普通文件真...[[]] 同上 bash调试 “启动调试 bash -选择项 shell程序文件名 -n:不会执行脚本,仅查询脚本语法是否有问题,并给出错误提示。...-v:在执行脚本,先将脚本内容输出到屏幕上,然后执行脚本,如果有错误,也会给错误提示。 -x:将执行脚本内容及输出显示到屏幕上。

    2.7K90

    网站安全防护公司渗透测试执行命令漏洞

    另外,在后面加个$可以起到截断作用,一般用$9,因为$9是当前系统shell进程第九个参数持有者,它始终空字符串 3.5.5.2.....\ >com ls -t>a sh a 上面的方法通过命令行重定向写入命令,接着通过ls按时间排序把命令写入文件,最后执行 直接在Linux终端下执行的话,创建文件需要在重定向符号之前添加命令 这里可以使用一些诸如...文件 3.7.1.5. .user.ini 在php执行过程中,除了主 php.ini 之外,PHP 还会在每个目录下扫描 INI 文件执行 PHP 文件所在目录开始一直上升到 web 根目录...如果被执行 PHP 文件在 web 根目录之外,则只扫描目录。....竞争上传绕过 有的服务器采用了先保存,再删除不合法文件方式,在这种服务器中,可以反复上传一个会生成Web Shell文件尝试访问,多次之后即可获得Shell。 3.7.2.

    1.2K20

    NO.3 Shell脚本

    简单来说就是将需要执行命令保存到文本中,按照顺序执行它。它是解释型,意味着它不需要编译。 若干命令 + 脚本基本格式 + 脚本特定语法 + 思想= shell脚本 什么时候用到脚本?...重复化、复杂化工作,通过把工作命令写成脚本,以后仅仅需要执行脚本就能完成这些工作。 如何学习脚本?...:上一条命令执行后返回状态,返回状态值0表示执行正常,非0值表示执行异常或出错 若退出状态值0 表示命令运行成功 若退出状态值127 command not found 若退出状态值126...找到了命令但无法执行 ---权限不够 若退出状态值1&2 没有那个文件或目录 $$ 当前所在进程进程号 $!...-eq 0 ] && echo "该服务正常" || echo "该服务不正常" 课堂练习: 1、写一个脚本判断一个用户是否存在 2、完善上一个脚本bug,要求没有给脚本传参数或者参数个数不等于1个

    84920

    shell脚本极简教程

    Shell脚本和编程语言很相似,也有变量和流程控制语句,但Shell脚本是解释执行,不需要编译,Shell程序脚本中一行一行读取并执行这些命令,相当于一个用户把脚本命令一行一行敲到Shell提示符下执行...shell最大优点是几乎和商业发行版ksh完全兼容,这样就可以在不用花钱购买商业版本情况下尝试商业版本性能了。...上个命令退出状态,或函数返回值。 $$ 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在进程ID。 九,shell替换 如果表达式中包含特殊字符,Shell 将会进行替换。...str 检测字符串是否,不为返回 true。 [ $a ] 返回 true。 文件测试运算符   文件测试运算符用于检测 Unix 文件各种属性。   ...-x file 检测文件是否可执行,如果是,则返回 true。 [ -x $file ] 返回 true。 -s file 检测文件是否文件大小是否大于0),不为返回 true。

    1.8K60

    使用shell脚本定时采集日志数据到hdfs分布式文件系统

    ,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行任务,如果有要执行任务,则自动执行任务。...root用户,如果MAILTO变量,则表示不发送任务执行信息给用户 HOME=/ #第四行HOME变量指定了在执行命令或者脚本使用主目录...在crontab文件中定义多个调度任务,需要特别注意一个问题就是环境变量设置,因为我们手动执行某个任务,是在当前shell环境下进行,程序当然能找到环境变量,而系统自动执行任务调度,是不会加载任何环境变量...所以注意如下3点: 1)脚本中涉及文件路径写全局路径; 2)脚本执行要用到java或其他环境变量通过source命令引入环境变量,如: cat start_cbp.sh #!...crontab突然失效,可以尝试/etc/init.d/crond restart解决问题。或者查看日志看某个job有没有执行/报错tail -f /var/log/cron。

    2K70

    Shell 快速指南

    Shell 环境 Shell 编程跟 java、php 编程一样,只要有一个能编写代码文本编辑器和一个能解释执行脚本解释器就可以了。...非交互模式 简单来说,你可以将 shell 非交互模式理解执行 shell 脚本。 在非交互模式下,shell 文件或者管道中读取命令并执行。... shell 解释器执行文件最后一个命令,shell 进程终止,并回到父进程。...除此之外,你还可以通过chmod命令给文件添加可执行权限,来直接执行脚本文件: chmod +x /path/to/script.sh #使脚本具有执行权限 /path/to/test.sh 这种方式要求脚本文件第一行必须指明运行脚本程序...一个命令被```或$()`包围,命令置换将会执行

    3.3K101
    领券