我即将写一个shell脚本。通过将其颜色设置为黄色,我希望能够在视觉上将其某些输出文本区分为警告。
这是怎么做的?
我正在尝试编写一个必须检查文件是否存在的脚本。在控制台我写
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) 我需要一个脚本来等待 (examplefile.txt) 出现在 /tmp 目录中
一旦发现它停止程序,否则休眠文件直到它被定位
到目前为止,我有:
如果 [ !-f /tmp/examplefile.txt ]
然后
谁处理(解释)* in
echo *
Run Code Online (Sandbox Code Playgroud)
回声是否看到星号或外壳会关心它并返回文件名列表..
关于什么
cp temp temp*
Run Code Online (Sandbox Code Playgroud) 如何编写将执行以下操作的 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所有这些。
如何从 OS X 中的 Finder 启动 bash 脚本?
我可以在 CLI 工作,但我的小脚本不太受我的 GUI 绑定同事的喜爱。
我创建了一个脚本来启动服务器(我的第一个问题)。现在我希望它在系统启动时运行并启动定义的服务器。我应该怎么做才能完成这项工作?
我的发现告诉我把这个文件放在这个/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) 在 bash 脚本中,我如何说“对于 .png 或 .PNG 类型的所有文件”?
我想 :
for i in (`ls *.PNG` && `ls *.png`)
Run Code Online (Sandbox Code Playgroud)
但是出现语法错误。
有没有办法通过回显命令运行 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命令来包装所有命令,但是对于一个很长的脚本来说很累人。
我只需要使用纯 sh shell 来计算字符串的长度。发生的事情/bin/sh实际上是到 bash 或其他 shell 的软链接。因此${#STRING}给出字符串的长度,因为它是高级 bash 功能。
有人能告诉我如何找到字符串的长度吗?我使用的是 Solaris 5.10 Sparc 架构