Почему этот скрипт работает с bash на Kali, но не работает с bash на Xubuntu?

Почему этот скрипт работает с bash на Kali, но не работает с bash на Xubuntu?

У меня есть скрипт, который я сделал, когда был дома на виртуальной машине Kali. Там он работает отлично, но сейчас я на работе на своей установке Xubuntu, и он вообще не работает. Точная оболочка, которую я использую через команду help, — GNU bash версии 4.2.25. Я не уверен, какая у меня дома оболочка (предположим, что последняя версия). Я предполагаю, что оболочка, которая у меня здесь на работе, старая и поэтому не поддерживает некоторые вещи, которые я использую в скрипте? Когда я запускаю его здесь, он выводит верхний и нижний колонтитулы, но ничего между ними. Любая помощь или совет будут оценены.

#!/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 ""

Вам не нужно продолжение строки, если конвейер находится в конце строки. Если вы хотите, чтобы ваши комментарии были в блоке над конвейером.

Связанный контент