我有一个在终端中运行良好的 BASH 脚本。但是当我试图让它在启动时运行时,什么也没有发生。这似乎与脚本使用函数的事实有关。当我将命令从功能中分离出来时,它会在启动时按预期工作。关于为什么的任何想法?这是一个示例,但函数中的任何任意代码都会产生相同的问题:
#!/bin/bash
say-stuff () {
notify-send Stuff "Here is some stuff."
}
say-stuff
我有一个在终端中运行良好的 BASH 脚本。但是当我试图让它在启动时运行时,什么也没有发生。这似乎与脚本使用函数的事实有关。当我将命令从功能中分离出来时,它会在启动时按预期工作。关于为什么的任何想法?这是一个示例,但函数中的任何任意代码都会产生相同的问题:
#!/bin/bash
say-stuff () {
notify-send Stuff "Here is some stuff."
}
say-stuff
我有一个 bash 脚本,它可以抓取各种文档链接的 url 列表。最后,脚本用于wget
下载文件。但是,我在名称中包含空格的文件名时遇到了问题:wget
在空格处结束 url。有sed
什么方法可以使用或将空白更改为%20
此处吗?还是其他解决方案?这是我的代码:
for url in $(cat download.md)
do
lynx --listonly --dump $url | \
awk '/\.(pdf|doc|docx|odt)$/{ sub("^[ ]*[0-9]+.[ ]*","",$0); print}'
done > ~/links.txt
for i in $( cat ~/links.txt ); do wget $i;
done
我正在使用脚本在 url 上查找所有 .pdf 文件的列表。但是 lynx 似乎对文件名中的空格有问题。这是脚本:
lynx --dump http://www.somesite/here/ | awk '/http/{print $2} | grep pdf > ~/Desktop/links.txt
这按预期工作,直到文件名中有一个带有空格的 .pdf。Lynx 似乎在空格处截断了文件名。有什么办法可以防止这种情况发生吗?