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

bash运行脚本的几种方式 转

bash shell 脚本执行的方法有多种,本文作一个总结,供大家学习参考。 假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/data/shell目录中并已有执行权限。...方法一:切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本: cd /data/shell ./hello.sh ./的意思是说在当前的工作目录下执行hello.sh。...方法二:以绝对路径的方式去执行bash shell脚本: /data/shell/hello.sh 方法三:直接使用bash 或sh 来执行bash shell脚本: cd /data/shell bash...因为方法三是将hello.sh作为参数传给sh(bash)命令来执行的。这时不是hello.sh自己来执行,而是被人家调用执行,所以不要执行权限。那么不用指定bash路径自然也好理解了啊,呵呵……。...方法四:在当前的shell环境中执行bash shell脚本: cd /data/shell . hello.sh 或 cd /data/shell source hello.sh 前三种方法执行shell

2.3K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    基于Bash Shell的一个审计脚本

    整体运行界面是这个样子的,界面眼熟吧,msf的图形,哈哈哈。 ? 总体分了三个内容: 一、Webshell后门扫描 二、网站日志分析 三、日志搜索 一、Webshell后门扫描 ?...二、网站日志分析 这个基本没变,懒得改了,详情可参考3年前写的那篇文章。 如何编写自己的Web日志分析脚本? ? 运行结果如下: ? ?...用户根据扫描出来的webshell后门名称,搜索名字,然后将搜索的信息进行去重、统计进行显示。 ?...毕竟都2020年了,不会徒手写shell脚本的攻城狮不是好运维~ 写个整体代码的框架示例,可能看起来能更清楚些... #!...五、题外话 在kali中,可以将常用的工具集中起来,配合bash shell的function函数,来实现自动化执行,就不需要背命令了,无论什么工具,输个IP地址或者域名就可以直接使用了,只要你提前在function

    1.2K30

    JAVA001-java  调用bash shell脚本阻塞问题的解决

    背景 使用java实现的web端,web端相应用户的界面操作,使用java调用bash实现的shell脚本进行实际的操作,操作完成返回执行结果给web 界面显示。 现象: Java 进程阻塞。...使用ps命令可以看到被调用的shell 的执行进程状态为S !...[img](file:///D:\Users\Frank\AppData\Local\Temp\ksohtml\wps52C1.tmp.jpg) 分析 Shell子进程的状态是S 睡眠状态,也就是该进程在等待某个条件满足...我们的java 程序也就阻塞在了 process.waitFor(); 解决办法 所调用的程序中不要有太多的输出到标准出错 、标准输出中。...Jvm及我们的java程序中,对该子进程的标准输出、标准出错进行读取,从而避免缓存区满。

    1.4K20

    bash shell:获取当前脚本的绝对路径(pwdreadlink)

    https://blog.csdn.net/10km/article/details/51906821 有时候,我们需要知道当前执行的输出shell脚本的所在绝对路径,可以用dirname...我们知道 dirname 可以获取一个文件所在的路径,dirname的用处是: 输出已经去除了尾部的”/”字符部分的名称;如果名称中不包含”/”, 则显示”.”(表示当前目录)。...所以下面这样的代码中SHELL_FOLDER中不一定是绝对路径 SHELL_FOLDER=$(dirname "$0") 需要用cd和pwd命令配合获取脚本所在绝对路径,正确的写法是这样的, SHELL_FOLDER...=$(cd "$(dirname "$0")";pwd) 如果你觉得上面的写法比较麻烦,还有一个方式获取脚本的绝对路径,就是借助readlink命令,下面是readlink的命令行说明: ?...所以用readlink命令我们可以直接获取$0参数的全路径文件名,然后再用dirname获取其所在的绝对路径: SHELL_FOLDER=$(dirname $(readlink -f "$0")) 参考

    8.9K30

    怎么正经的实现shell脚本单例运行?

    假设你的一个脚本已经在运行了,如果避免再次被执行呢?也就是如何实现单例运行? 看起来可行的方法 一个非常简单的思路就是,新的脚本被执行时,先检测当前脚本是否有其他实例正在运行,如果有则直接退出。 #!.../usr/bin/env bash #test.sh 来源:公众号编程珠玑 #获取当前运行的test.sh脚本数 runCount=$(ps -ef|grep test.sh | grep -v grep...原因在于,shell脚本中一个命令执行相当于fork了一个进程执行,这里执行的是查找tesh.sh并grep的程序,另外还有一个就是当前运行的脚本程序,这样的方式自然就会出现每次都有两个了。...文件锁 实际上这种方法你已经在《如何让你的程序同时只有一个在运行》介绍过了,只不过之前是用于编写C/C++程序,而这里是用于shell脚本。...}环境变量没有设置,则尝试将脚本本身加锁,如果加锁成功,则运行当前脚本,(并且带上原有的参数),否则的话静默退出。

    2.3K20

    通过JSch运行远程linux主机上的shell脚本

    如果您看完文章之后,觉得对您有帮助,请帮我点个赞,您的支持是我不竭的创作动力! 运行远程主机上的shell脚本 下面的例子是教给大家如何通过java程序,运行远程主机上的shell脚本。...(我讲的不是一个黑客学习教程,而是使用用户名密码去执行有用户认证资格的主机上的shell脚本)。并且通过java程序获得shell脚本的输出。...远程shell脚本 下面的代码放入一个文件:hello.sh,脚本的内容很简单只是用来测试,回显输出“hello ” #!...并且在远程主机上,为这个脚本设置可执行权限,方法如下: $ chmod +x hello.sh 本地java程序 我们可以使用下面的代码,去远程的linux 主机执行shell脚本,详细功能请看代码注释...= null) { jschSession.disconnect(); } } } } 最终在本地控制台,获得远程主机上shell脚本的执行结果。

    2.2K00

    bash shell:脚本中修改profile文件更新LD_LIBRARY_PATH的示例

    下面我们以一个实际应用的例子来说明: 我已经有一个叫CASSDK的项目,这个项目没有可执行文件,只是一组动态库文件提供别的应用程序调用(比如java),需要为它写一个安装脚本,脚本的作用是将在将文件复制到指定安装目录...另外还要写一个卸载脚本,在删除安装目录后,同时将profile中的LD_LIBRARY_PATH变量也同步修改。...下面是原始的profile脚本片段 # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/...(UNINSTALL.sh)片段,用sed修改profile文件,删除安装脚本添加的export语句 # 定义安装目录位置的变量 cassdk_path=/home/gdface/cassdk # 将cassdk_path...来示例的,所以需要用root权限执行,当然你也可以用同样的办法修改~/.bash_profile。

    3.1K20

    Shell脚本开发,超神的存在!这款Bash开发工具,你值得拥有!

    它为您提供 Bash 开发过程中所需的各种功能:完善的代码编辑与格式化体验,强大的运行配置,代码调试器、测试器集成等等。...脚本执行 您可以使用 BashSupport Pro 自由执行 Bash 脚本文件和 代码片段。您可以利用代码片段将脚本和多个配置内容保存在同一文件中。有关脚本执行的内容都定义在 运行配置中。...在 Windows 环境中执行 Bash 脚本时,您可以通过配置文件进行自动路径映射。您还可以导入和导出其他 Bash 插件的运行配置。...您可以在大家使用不同的操作系统的情况下将您的运行配置分享给团队中的任何人。...在复杂项目中,您还可以将一组 Bash 脚本定义为 shell 脚本库 ,这将大幅简化启动 BashSupport Pro 代码检查功能的流程。 安装使用 插件安装 在 中打开插件设置。

    1.8K10

    Python | Pipenv官方推荐的python包管理工具

    这些命令可以替代$ pip install使用以及对虚拟环境的手动管理(激活虚拟环境,只需运行$ pipenv shell) 基本概念 当虚拟环境不存在时,会自动创建一个 当没有参数传给 install...时,将安装所有指定的包 通过 $ pipenv --three,初始化一个Python3的虚拟环境 通过$ pipenv --two,初始化一个Python2的虚拟环境 其他命令下生成的虚拟环境都是默认设置...其他命令 shell 命令会生成一个激活了虚拟环境的shell run 将运行输入到虚拟环境的命令,并转发所有参数(e.g. $ pipenv run python) check 确定当前环境满足PEP...508的要求 graph 将输出一个包含当前所有已安装依赖的漂亮图形 Shell 补全 举个例子,使用fish shell,将下列命令加入~/.config/fish/completions/pipenv.fish...: eval (pipenv --completion) 另外,也可以使用bash,将下列代码加入 .bashrc 或者 .bash_profile: eval "$(pipenv --completion

    99320

    Pipenv:官方推荐的python包管理工具

    这些命令可以替代$ pip install使用以及对虚拟环境的手动管理(激活虚拟环境,只需运行$ pipenv shell) 基本概念 当虚拟环境不存在时,会自动创建一个 当没有参数传给 install...时,将安装所有指定的包 通过 $ pipenv --three,初始化一个Python3的虚拟环境 通过$ pipenv --two,初始化一个Python2的虚拟环境 其他命令下生成的虚拟环境都是默认设置...其他命令 shell 命令会生成一个激活了虚拟环境的shell run 将运行输入到虚拟环境的命令,并转发所有参数(e.g. $ pipenv run python) check 确定当前环境满足PEP...508的要求 graph 将输出一个包含当前所有已安装依赖的漂亮图形 Shell 补全 举个例子,使用fish shell,将下列命令加入~/.config/fish/completions/pipenv.fish...: eval (pipenv --completion) 另外,也可以使用bash,将下列代码加入 .bashrc 或者 .bash_profile: eval "$(pipenv --completion

    1.7K70

    你应该学会的Python多版本管理工具P

    一切python及其官方自带工具或脚本,运行都会隐晦的通过pyenv调用,使用者无感知。原理如下条: pyenv的命令操作,就是依据三层....小结: 其实说白了,就是基于path查找命令优先级为基础,强行在path前面插入一个pyenv_root/shims的目录(里面有伪造的python/pip/setuptools等命令的同名脚本,有兴趣可以看下脚本内容...然后执行这些伪造命令,其实都是在执行pyenv命令,这些伪造的命令会作为参数传递给pyenv命令,然后执行pyenv命令。...安装pyenv 前提,只能在类linux系统中使用 安装,执行命令:curl https://pyenv.run | bash 配置, 根据提示,在~/.bashrc文件最后,追加以下shell命令:...就可以开始使用pyenv 安装过程参考 通过pyenv安装python各种发行版 首先,pyenv是将现有支持的python各python发行版版本信息保存到pyenv本地的。

    3K20

    python版本管理(python环境隔

    相关关键字如下: vscode 对 pipenv 的支持, vscode 找不到 pipenv 创建的虚拟环境, vscode pipenv, pipenv vscode ...等等 希望能给你带来更多营养...当你要执行终端命令的时候,这个命令是从哪来呢,有个环境变量 PATH 企图hold住这个问题,大部分人打印一下 PATH (echo $PATH) 应该都会发现这样一部分 /usr/local/bin:...这就说明了一个问题,只要你使用pyenv 运行 which python 的时候永远都打印 /Users/admin/.pyenv/shims/python 即使它指向的是各种各样的 python 版本...(which pip 同理) pyenv 通过环境变量 PYENV_VERSION 控制 python 指向的版本,也就是 pyenv shell 控制的内容,控制顺序依次是 pyenv shell,...这就是为啥要在 ~/.zshrc (或者 bash 对应的配置文件)里面加上 eval "$(pyenv init -),因为要把垫片加到 PATH 的最前面。

    1.1K30

    如何使用 Tmuxp 来优雅的管理多个 Tmux 会话

    补全(.bashrc) $ eval "$(_TMUXP_COMPLETE=source tmuxp)" # 如果运行命令提示报错则执行如下命令即可 $ tmux kill-server # 简洁的语法配置...使用方式 只需要记住 load 这个一个命令其实就够了 tmuxp 工具将配置文件保存在 ~/.tmuxp 中或在项目目录下作为 ~/.tmuxp.{yaml,json} 独立出现。...: /usr/bin/vim HOME: /tmp/hm windows: # 如果之前没有shell命令将打开一个空白窗格。...测试开发配置 主要介绍在我们实际开发和测试当中应该如何使用该工具 [1] 定制高级开发环境 作为开发环境时候的相关配置 session_name: tmuxp start_directory: ./ #...CWD 进入根(会话)级启动目录之前 # 假设您的.tmuxp.yaml位于项目的根目录中 # 如果使用pipenv的话,则可以使用如下脚本来确保已安装软件包 session_name: my pipenv

    4.3K31
    领券