标签: shell-script

在 shell 脚本中以某种颜色回显文本

我即将写一个shell脚本。通过将其颜色设置为黄色,我希望能够在视觉上将其某些输出文本区分为警告。

这是怎么做的?

bash shell-script

16
推荐指数
1
解决办法
1万
查看次数

为什么我在运行脚本时得到 [[: not found?

我正在尝试编写一个必须检查文件是否存在的脚本。在控制台我写

if [[ -a /path/to/file.txt ]]; then echo "not mod"; else echo "mod"; fi
Run Code Online (Sandbox Code Playgroud)

我得到

not mod
Run Code Online (Sandbox Code Playgroud)

但是当我写一个脚本来做同样的事情时:

#!/bin/sh
if [[ -a /path/to/file.txt ]]; then echo "not mod"; else echo "mod"; fi
Run Code Online (Sandbox Code Playgroud)

然后执行脚本,我得到这个:

./ex.sh: 2: [[: not found
mod
Run Code Online (Sandbox Code Playgroud)

我将脚本保存在当前目录中并将其命名为 ex.sh,然后确保它是可执行的。要调用脚本,我这样做:

./ex.sh
Run Code Online (Sandbox Code Playgroud)

为什么我会遇到这个问题?我已经尝试了很多东西:

if [ -a /home ...
Run Code Online (Sandbox Code Playgroud)

if test -a /home ...
Run Code Online (Sandbox Code Playgroud)

两人归来

13: -a: unexpected operator
Run Code Online (Sandbox Code Playgroud)

bash shell-script

16
推荐指数
1
解决办法
3万
查看次数

Unix 脚本:等待文件存在

我需要一个脚本来等待 (examplefile.txt) 出现在 /tmp 目录中

一旦发现它停止程序,否则休眠文件直到它被定位

到目前为止,我有:

如果 [ !-f /tmp/examplefile.txt ]

然后

unix shell-script

16
推荐指数
2
解决办法
5万
查看次数

谁在回声 * 中处理明星 *

谁处理(解释)* in

echo *
Run Code Online (Sandbox Code Playgroud)

回声是否看到星号或外壳会关心它并返回文件名列表..

关于什么

cp temp temp*
Run Code Online (Sandbox Code Playgroud)

unix bash shell shell-script stdin

16
推荐指数
2
解决办法
1万
查看次数

循环使用 wget 下载一系列数字

如何编写将执行以下操作的 bash 脚本:

URL = "example.com/imageID="
while (1..100)
   wget URL + $i #it will wget example.com/imageID=1, then 2, then 3, etc
done
Run Code Online (Sandbox Code Playgroud)

所以我有许多循环要执行,一个以循环中的数字结尾的 URL。我需要wget所有这些。

bash wget shell-script

15
推荐指数
2
解决办法
3万
查看次数

如何从 OS X 中的 Finder 启动 bash 脚本?

如何从 OS X 中的 Finder 启动 bash 脚本?

我可以在 CLI 工作,但我的小脚本不太受我的 GUI 绑定同事的喜爱。

finder script bash shell-script macos

14
推荐指数
2
解决办法
6651
查看次数

如何在启动时执行shell脚本?

我创建了一个脚本来启动服务器(我的第一个问题)。现在我希望它在系统启动时运行并启动定义的服务器。我应该怎么做才能完成这项工作?

我的发现告诉我把这个文件放在这个/etc/init.d位置,它会在系统启动时执行。但我无法理解启动时的第一个论点是start什么?这是预定义的某个地方start用作$1吗?如果我想要一个案例startall来启动脚本中的所有服务器,那么我可以管理哪些选项?

我的脚本是这样的:

#!/bin/bash

case "$1" in
start)
     start
    ;;
stop)
    stop
    ;;

restart)
    $0 stop
    $0 start
    ;;
*)
    echo "usage: $0 (start|stop|restart)"
;;
esac
Run Code Online (Sandbox Code Playgroud)

linux shell-script centos-5

14
推荐指数
2
解决办法
6万
查看次数

Bash shell:列出 .png 或 .PNG 类型的所有文件?

在 bash 脚本中,我如何说“对于 .png 或 .PNG 类型的所有文件”?

我想 :

for i in (`ls *.PNG` && `ls *.png`)
Run Code Online (Sandbox Code Playgroud)

但是出现语法错误。

bash shell shell-script

14
推荐指数
2
解决办法
1万
查看次数

如何在 bash shell 脚本中回显命令,但不执行它们?

有没有办法通过回显命令运行 shell 脚本实际上不执行它们?

假设我有脚本删除其名称存储在变量中的文件:

#!/bin/bash
set -v
FN="filename"
rm -f ${FN}
Run Code Online (Sandbox Code Playgroud)

添加set -v将在执行前回显以下命令:

$ ./scr.sh
FN="filename"
rm -f ${FN}
Run Code Online (Sandbox Code Playgroud)

现在,我想看看这个脚本的流程,而无需实际删除文件。IOW,我想防止对外部环境和文件系统产生任何影响。这可能吗?

我可以用一个echo命令来包装所有命令,但是对于一个很长的脚本来说很累人。

linux bash shell-script

14
推荐指数
3
解决办法
3万
查看次数

如何在shell中找到字符串的长度

我只需要使用纯 sh shell 来计算字符串的长度。发生的事情/bin/sh实际上是到 bash 或其他 shell 的软链接。因此${#STRING}给出字符串的长度,因为它是高级 bash 功能。

有人能告诉我如何找到字符串的长度吗?我使用的是 Solaris 5.10 Sparc 架构

shell sh shell-script

14
推荐指数
3
解决办法
9万
查看次数

标签 统计

shell-script ×10

bash ×7

shell ×3

linux ×2

unix ×2

centos-5 ×1

finder ×1

macos ×1

script ×1

sh ×1

stdin ×1

wget ×1