このスクリプトはなぜ Kali 上の bash では動作するのに対し、Xubuntu 上の bash では動作しないのでしょうか?

このスクリプトはなぜ Kali 上の bash では動作するのに対し、Xubuntu 上の bash では動作しないのでしょうか?

自宅の 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 ""

パイプが行末にある場合は、行の継続は必要ありません。コメントが必要な場合は、パイプラインの上のブロックにコメントを入れます。

関連情報