为什么这个脚本可以在 Kali 上使用 bash,但不能在 Xubuntu 上使用 bash?

为什么这个脚本可以在 Kali 上使用 bash,但不能在 Xubuntu 上使用 bash?

我有一个脚本,是我在家时在 Kali 虚拟机上编写的。它在那里工作得很好,但现在我正在安装 Xubuntu,但它根本不工作。我通过 help 命令使用的确切 shell 是 GNU bash 版本 4.2.25。我不确定我家里有什么外壳(假设它是最新版本)。我假设我在这里工作的 shell 比较旧,因此不支持我在脚本中使用的一些东西?当我在这里运行它时,它打印出页眉和页脚,但中间没有打印任何内容。任何帮助或建议将不胜感激。

#!/bin/bash

echo ""
echo "######## WHOIS: "$1

# Whois using the inputted parameter
whois $1 |\

# Remove EOL characters
tr -d '\015\032' |\

# Remove spaces
sed 's/^ *//' |\

# Remove unnecessary words from output
grep -v -e "@" -e "http://" -e "WHOIS" > temp.txt

# Display all of the date lines
egrep -i "ate: " temp.txt

# Remove the tmp file
rm -rf temp.txt

echo "------- DONE!"
echo ""

答案1

您的注释和空行正在破坏管道连接。用这个:

#!/bin/bash

echo ""
echo "######## WHOIS: "$1

whois $1 |
tr -d '\015\032' |
sed 's/^ *//' |
grep -v -e "@" -e "http://" -e "WHOIS" |
egrep -i "ate: " 

echo "------- DONE!"
echo ""

如果管道位于行尾,则不需要续行。如果您想要发表评论,请将它们放在管道上方的块中。

相关内容