시간 테스트 출력 정의 디렉터리의 변수에서 후행 슬래시를 제거하는 방법

시간 테스트 출력 정의 디렉터리의 변수에서 후행 슬래시를 제거하는 방법

우분투16.04

for의 출력이 client in */; do후행 슬래시를 생성하지 않더라도 루프 내의 파일에 대해 시간 테스트를 실행하는 동안 $client 변수를 에코하면 후행 슬래시가 발생합니다.

cd "$wDir"
for client in */; do
   cd "$wDir"/"$client";

   #-- check to see if any .csv files exists
   if ls *.csv &>/dev/null; then
      for csvfile in *.csv; do
         if test $(find "$csvfile" -mmin +2880); then
            echo "$client has files older than 2 days ..." >> "staleFtpAccts"
         fi
      done
   fi
done

스크립트를 실행하면 다음과 같이 $client 변수 뒤에 /가 배치됩니다.

root@me /home/frank # bash script.sh
Start ...
000029_000020/ has files older than 2 days ...
#--
Finished ...

Start ...
000033_000040/ has files older than 2 days ...
#--
Finished ...

Start ...
000033_000041/ has files older than 2 days ...
#--
Finished ...

Start ...
000033_000042/ has files older than 2 days ...
#--
Finished ...

Start ...
000033_000043/ has files older than 2 days ...
#--
Finished ...

이것이 내가 추구하는 결과입니다 ...

root@me /home/frank # bash script.sh
Start ...
000029_000020 has files older than 2 days ...
#--
Finished ...

Start ...
000033_000040 has files older than 2 days ...
#--
Finished ...

Start ...
000033_000041 has files older than 2 days ...
#--
Finished ...

Start ...
000033_000042 has files older than 2 days ...
#--
Finished ...

Start ...
000033_000043 has files older than 2 days ...
#--
Finished ...

답변1

이 시도 매개변수 확장:

echo "${client%/}"

그래서

echo "${client%/} has files older than 2 days ..."

매개변수 확장확장 매개변수: "$foo", "$1".이를 사용하여 문자열 또는 배열 작업을 수행할 수 있습니다: "${file%.mp3}", "${0##*/}", "${files[@]: -4}".언제나인용하십시오. 바라보다:http://mywiki.wooledge.org/BashFAQ/073그리고 man bash의 "매개변수 확장". 또한보십시오http://wiki.bash-hackers.org/syntax/pe.

관련 정보