标签: bash

echo 换行符在 bash 中不起作用

我有有很多的bash脚本echo语句,也是我别名echoecho -e两个.bash_profile.bashrc,使新线为语句正常打印一样echo 'Hello\nWorld'的输出应该是

Hello
World
Run Code Online (Sandbox Code Playgroud)

但我得到的输出是

Hello\nWorld
Run Code Online (Sandbox Code Playgroud)

我什至尝试shopt -s expand_aliases在脚本中使用,它没有帮助

我正在运行我的脚本bash /scripts/scriptnm.sh;如果我. /scripts/scriptnm.sh在获得所需的输出时运行它...

linux script bash shell

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

使用 Wget 递归抓取站点并下载图像

您如何指示 wget 递归抓取网站并仅下载某些类型的图像?

我尝试使用它来抓取网站并且只下载 Jpeg 图像:

wget --no-parent --wait=10 --limit-rate=100K --recursive --accept=jpg,jpeg --no-directories http://somedomain/images/page1.html
Run Code Online (Sandbox Code Playgroud)

然而,即使 page1.html 包含数百个指向子页面的链接,这些链接本身具有指向图像的直接链接,但 wget 会报告诸如“删除 subpage13.html 因为它应该被拒绝”之类的内容,并且从不下载任何图像,因为没有一个直接链接到从起始页。

我假设这是因为我的 --accept 被用于指导抓取和过滤内容下载,而我希望它只用于指导内容下载。如何让 wget 抓取所有链接,但只下载具有某些扩展名(如 *.jpeg)的文件?

编辑:另外,有些页面是动态的,是通过 CGI 脚本生成的(例如 img.cgi?fo9s0f989wefw90e)。即使我将 cgi 添加到我的接受列表(例如 --accept=jpg,jpeg,html,cgi),这些仍然总是被拒绝。有没有解决的办法?

linux script bash wget web-crawler

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

“kill %1”中的 %1 是什么意思?

我知道它$!存储了最后一个(后台)进程的 pid,但这是什么%1意思?我经常看到它kill和它一起使用,它的效果与kill $!. 有人可以给我一个提示吗?(这么小的术语很难用谷歌搜索:-/)

bash kill

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

是否有一个命令可以在不使用 cd 的情况下返回目录中的多个步骤?

我一直在'cd ../../../../'。是否有一个命令/别名可以让我进入“cmd 4”而我会被收回 4 个目录?

linux unix terminal bash

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

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中将ASCII字符转换为整数?

我正在解析 ntpq 输出以通过控制台实用程序将其内容传递到我们的数据库。第一个元素是一个包含远程状态的单字符子字符串。它可以是“*”、“+”、“o”、“#”等。我最好把它作为数字放到数据库中,这样存储过程就可以很容易地保存它,但我不知道,如何将字符转换为 bash 中的 ASCII 表示。

bash

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

如何在 Mac OS X 下以毫秒为单位获取 Bash 执行时间?

我已经检查过这个,但是提供的解决方案对我不起作用。

使用 date 我可以获得以秒为单位的执行时间:

T="$(date +%s)"
#some work here
T="$(($(date +%s)-T))"
echo "execution time (secs) ${T}"
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试这样做时:

T="$(date +%s%N)"
#some work here
T="$(($(date +%s%N)-T))"
Run Code Online (Sandbox Code Playgroud)

将 %N(如上)添加到日期以获得纳秒精度我得到以下错误:-bash: 1369320760N: value too great for base (error token is "1369320760N")

有谁知道如何在 Mac OS X 下使用 bash 测量以毫秒为单位的执行时间?

unix bash macos

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

如何从 bash / osX 中的命令行列出所有已安装的软件包

-bash列出我机器上本地安装的所有软件包的命令是什么?

我正在使用 osX。

到目前为止,我尝试了以下方法:

  1. dpkg -l - 不起作用。
  2. apt --installed list - 不起作用。
  3. pkgutil --pkgs- 仅列出使用 Apple 安装程序安装的那些。我需要所有安装了npm.
  4. npm list - 作品。
  5. npm list -g --depth=0 - 作品。
  6. ls `npm root -g` - 作品。

mac bash shell command-line macos

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

如何减少寻呼机响应滚轮而不清除屏幕

我知道诸如how-to-make-mouse-wheel-scroll-the-less-pager-using-bash-and-gnome-terminal 之类的答案,即-X从 $LESS 环境变量中删除标志。但我想同时做这两件事:

  1. 使用鼠标滚轮滚动寻呼机(而不是滚动终端窗口的滚动条)(您可以通过从中删除-X$LESS
  2. 退出后让来自寻呼机的内容保留在屏幕上(通常通过添加 -X到 来完成$LESS)。

有什么办法可以让我的蛋糕也吃掉吗?

linux mouse terminal bash scrolling

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

如何在不使用鼠标的情况下快速获取终端中的上一行输出?

Linux(例如Ubuntu)终端,有没有办法得到最后一行?假设我随机输入一个td命令,该命令尚未安装在我的系统上,因此我会收到如下消息。我想有一个“捷径”来sudo apt-get install textdraw快速运行。

有没有这样的工具,或者如何在不使用鼠标的情况下将最后一行复制到剪贴板?

username@WorkStation:~$ td
The program 'td' is currently not installed. You can install it by typing:
sudo apt-get install textdraw
username@WorkStation:~$
Run Code Online (Sandbox Code Playgroud)

terminal bash shell ubuntu

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

标签 统计

bash ×10

linux ×4

shell ×4

terminal ×3

macos ×2

script ×2

unix ×2

command-line ×1

kill ×1

mac ×1

mouse ×1

scrolling ×1

shell-script ×1

ubuntu ×1

web-crawler ×1

wget ×1