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

Bash shell脚本如何检查一个目录是否存在

问: 在 Bash shell 脚本什么命令检查某个目录是否存在?...答: 要检查目录是否存在,请执行以下操作: if [ -d "$DIRECTORY" ]; then echo "$DIRECTORY does exist." fi 一行代码形式则如下: [...在 Unix 早期设计,许多系统资源都被抽象为文件,以实现统一和一致接口处理,这样程序员可以使用相同系统调用来操作不同资源,如普通文件、目录、设备等。...这种哲学影响了许多 Unix-like 操作系统,包括 Linux。 这里顺便整理一下 Bash 对文件各种测试: -a file -- 如果文件存在则为真。...参考文档: stackoverflow question 59838 https://www.gnu.org/software/bash/manual/bash.html#Bash-Conditional-Expressions

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

Bash shellbash、sh、source及“.”区别与联系

在众多Linux发行版bash shell 可谓是随处可见。作为众多发行版首选shell,对于bash shell学习对我们来说,显得格外重要。...在学习bash shell过程bash、sh、source及英文输入状态下点号经常交替出现,他们看起来作用都差不多,但是深究下去,他们也有着不小区别与联系。...查看shell历史我们可以知道,我们通常所说bash shellbash)全称为GNU Bourne-Again SHell。在目前发行版,sh已经成为bash一个软连接。...从上面的2个代码块,我们可以看出,b.sh脚本直接引用了a.sh变了,如果我们依次执行几个有关联脚本就可以采用这种方式,否则则使用bash及sh比较恰当。...四、结论 bash与sh在对于脚本执行来说,效果一致,不继承除了当前shell之外变量值。在无空格“.”且有执行权限脚本执行,效果与bash及sh一致。

81110

如何在 Bash Shell 脚本显示对话框

这个教程给出几个如何使用类似zenity和whiptail工具在Bash Shell 脚本中提供消息/对话框例子。使用这些工具,你脚本能够告知用户当前程序运行状态并能与用户进行交互。...Zenity 工具 在Ubuntu安装zenity,运行: ? 用zenity创建消息框或者对话框命令是不言自明,我们会给你提供一些例子来参考。 创建消息框 ? ?...创建输入框并将输入值保存到变量 ? ? 输入后,值会保存在变量 $a 。 这是一个获取用户姓名并显示实际事例。 ? 这些是运行前面脚本截图。 ? 框1 ? 输入框 ? 输入框 ? 输入框 ?...你想获取输入值任何whiptail命令也是如此。 创建菜单对话框 ? ? 这是一个请求用户输入一个文件夹路径并输出它大小 shell 脚本。 ? 这是之前例子一些截图: ? 输入框 ?...桌面机器用户通常使用GUI窗口环境,也可能运行脚本并与显示窗口进行交互。

2.5K10

基于Bash Shell一个审计脚本

尤其是涉及中文,一定要在notepad++,转换成unix格式,不然是无法识别中文。 ? 执行以后效果是这个样子,虽然是丑了点,但是好歹还是能用。 ?...毕竟都2020年了,不会徒手写shell脚本攻城狮不是好运维~ 写个整体代码框架示例,可能看起来能更清楚些... #!...五、题外话 在kali,可以将常用工具集中起来,配合bash shellfunction函数,来实现自动化执行,就不需要背命令了,无论什么工具,输个IP地址或者域名就可以直接使用了,只要你提前在function...cmd2变量 一旦目标IP存在MS17-010漏洞,输出结果中会含有相关信息,通过awk分割,获取关键词MS17-010,通过cmd2变量获取内容进行匹配,如果两者相当,则执行接下来操作。...利用nmap -script=smb-vuln-ms17-010,扫描到目标主机存在MS17-010漏洞后,自动执行攻击命令,获取shell权限。 ?

1.1K30

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

代码导航 对于变量和函数(包含源文件变量和函数),BashSupport Pro 提供转到声明及查找用法功能。...脚本执行 您可以使用 BashSupport Pro 自由执行 Bash 脚本文件和 代码片段。您可以利用代码片段将脚本和多个配置内容保存在同一文件。有关脚本执行内容都定义在 运行配置。...在 Windows 环境执行 Bash 脚本时,您可以通过配置文件进行自动路径映射。您还可以导入和导出其他 Bash 插件运行配置。...调试与测试 BashSupport Pro 在 JetBrains 调试器界面中集成了 bashdb Bash 调试器 。该集成项目支持条件断点,变量聚焦表达式,嵌入提示等功能。...在复杂项目中,您还可以将一组 Bash 脚本定义为 shell 脚本库 ,这将大幅简化启动 BashSupport Pro 代码检查功能流程。 安装使用 插件安装 在 打开插件设置。

77010

如何在 Bash shell 脚本解析命令行选项

Bash 选项解析 在 Bash 解析选项策略是循环遍历所有传递给 shell 脚本参数,确定它们是否是一个选项,然后转向下一个参数。重复这个过程,直到没有选项为止。 #!...在实际脚本,你可以使用 --verbose 和 -v 来触发详细输出)。 shift 关键字会使所有参数位移一位,这样位置 2($2)参数移动到位置 1($1)。...在脚本末尾,$ALPHA 值会输出到终端。 测试一下这个脚本: $ bash ./test.sh --alpha 1 $ bash ./test.sh $ bash ....在 Bash 检测参数 但上面的脚本还有一个问题:多余参数被忽略了。 $ bash ..../test.sh --alpha foo 1 $ 要想捕获非选项名参数,可以将剩余参数转储到 Bash 数组 。 #!

1.5K20

详解bash脚本调试机制

以调试模式运行脚本 通过bash -x 方式可以在调试模式下运行整个脚本, bash会在在运行前打印出了每一行命令, 而且每行前面用+号表明命令嵌套层数. > bash -x debug.sh...关键字用于在解释出现错误时执行预设操作, 例如打印出错命令: trap 'echo $BASH_COMMAND' ERR 但鉴于使用trap进行调试执行效率过低, 建议在较为复杂脚本中直接使用调试选项或者使用...:55:37 PM CST > set +vx # 取消参数 set +vx 通过使用-f选项可以显著减少脚本转义字符: > ls ?...: var: unbound variable 为防止误操作覆盖文件数据, 设置禁止重定向到已经存在文件: > set -C # 等价于 set -o noclobber > touch test...* > ll * -rw-rw-r-- 1 remilia remilia 0 Mar 1 20:09 '*' 到此这篇关于详解bash脚本调试机制文章就介绍到这了,更多相关bash 脚本调试

1.3K31

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

背景 使用java实现web端,web端相应用户界面操作,使用java调用bash实现shell脚本进行实际操作,操作完成返回执行结果给web 界面显示。 现象: Java 进程阻塞。...使用ps命令可以看到被调用shell 执行进程状态为S !...假设这个子进程一直向标准输出或者标准出错写数据而jvm一致不读取,若相应标准出错标准输出缓存区被写满,则该子进程会一直等待缓存区有空间方继续执行。则子进程进入睡眠模式。...我们java 程序也就阻塞在了 process.waitFor(); 解决办法 所调用程序不要有太多输出到标准出错 、标准输出。...Jvm及我们java程序,对该子进程标准输出、标准出错进行读取,从而避免缓存区满。

1.3K20

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.5K30

Bash shellbash、sh、source及“.”点等五种执行方式区别与联系

欢迎转载,转载请注明出处,谢谢 在众多Linux发行版bash shell 可谓是随处可见。作为众多发行版首选shell,对于bash shell学习对我们来说,显得格外重要。...查看shell历史我们可以知道,我们通常所说bash shellbash)全称为GNU Bourne-Again SHell。在目前发行版,sh已经成为bash一个软连接。...从上面的2个代码块,我们可以看出,b.sh脚本直接引用了a.sh变了,如果我们依次执行几个有关联脚本就可以采用这种方式,否则则使用bash及sh比较恰当。...四、结论 bash与sh在对于脚本执行来说,效果一致,不继承除了当前shell之外变量值。在无空格“.”(相对路径)、绝对路径且有执行权限脚本执行,效果与bash及sh一致。...bash、sh、不带空格点(相对路径)或绝对路径脚本是在子进程执行。在source及带空格点中,脚本是在父进程执行,差别很大。

3.2K10

Bash Shell 单引号和双引号区别

引号是 Linux shell “特殊功能”,它可能会让人感到困惑,特别是如果您不熟悉 Linux 命令和 shell 脚本。 我将解释不同类型引号字符及其在 shell 脚本用法。...1.单引号 Shell 单引号会忽略其中所有类型特殊字符,单引号之间所有内容都被视为一个元素。 让我们举个例子,这是一个示例文本文件,其中包含 90 年代一些板球运动员。...让我们在 shell 声明一个变量,如果用 $ 回显变量名称,它会显示变量值。...反引号 此列表最后一个是反引号,它具有特殊含义。它用于命令替换。 shell 具有此命令替换功能,其中指定命令被替换为命令输出。...[202204081703625.png] 不再推荐反引号 多年来,反引号用于 Shell 脚本命令替换,但是现在,现代 UNIX 和 Linux 系统更喜欢这种$(command)结构。

3.3K50

Linux系统安全 | LinuxShellBash

我们将一些shell规定语法与命令,再搭配正则表达式、管道命令与数据流重定向等功能,写成一个纯文本文件以达到我们想要处理目的,再配以“.sh”扩展名,这便是“Shell script”了。...所以,我们就不难理解Linuxshell有多种类型了吧,这其中最常用几种是 Bourne shell(sh)、Bourne Again shell(bash) 和 Debian Almquist...Bash放在/bin/bash ,它有许多特色,可以提供如命令补全、命令编辑和命令历史表等功能,有灵活和强大编程接口,同时又有很友好用户界面。...而且在Redhat系列Linux 操作系统 /bin/sh 是 /bin/bash 符号链接。所以,用 sh执行脚本bash 执行脚本,效果是一样。所以我们通常会在脚本第一行写 #!...Dash ShellBash Shell多,符合POSIX标准。也就是若脚本第一行为“#!

2.9K10

Linux系统安全 | LinuxShellBash

我们将一些shell规定语法与命令,再搭配正则表达式、管道命令与数据流重定向等功能,写成一个纯文本文件以达到我们想要处理目的,再配以“.sh”扩展名,这便是“Shell script”了。...所以,我们就不难理解Linuxshell有多种类型了吧,这其中最常用几种是 Bourne shell(sh)、Bourne Again shell(bash) 和 Debian Almquist...Bash放在/bin/bash ,它有许多特色,可以提供如命令补全、命令编辑和命令历史表等功能,有灵活和强大编程接口,同时又有很友好用户界面。...而且在Redhat系列Linux 操作系统 /bin/sh 是 /bin/bash 符号链接。所以,用 sh执行脚本bash 执行脚本,效果是一样。所以我们通常会在脚本第一行写 #!...Dash ShellBash Shell多,符合POSIX标准。也就是若脚本第一行为“#!

1.6K20
领券