이 스크립트가 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 ""

파이프가 라인의 끝에 있으면 라인 연속이 필요하지 않습니다. 의견을 원하시면 파이프라인 위의 블록에 의견을 넣으세요.

관련 정보