다음 스크립트가 있습니다.
#!/bin/bash
cat list.txt | while IFS='' read -r a;
#Remove all illegal characters
do
a=${a// /_}
a=${a// /_}
a=${a//\'/}
a=${a//-/_}
a=${a,,}
filepath="/applications/"
b=$filepath$a".csv"
echo $b
done
예상되는 결과는 다음과 같습니다.
/applications/ahold_region
/applications/alb_sfy_region
/applications/awg_census_region
/applications/bjs_total_ta
/applications/delhaize_region
/applications/dollar_value_area
실제 결과는 다음과 같습니다.
.csvlications/ahold_region
.csvlications/alb_sfy_region
.csvlications/awg_census_region
.csvlications/bjs_total_ta
.csvlications/delhaize_region
.csvlications/dollar_value_area
.csv
bash가 교체에서 처음 4자를 사용하는 것 같습니다 $filepath
.
예상되는 결과를 생성하는 방법은 무엇입니까?
답변1
CRLF
스크립트에서만 얻은 것이 아니라 .shell 로 list.txt
변경한 후 문제가 해결되었습니다.LF
list.txt