다음 Bash 스크립트가 있습니다.
#!/bin/bash
cd ~/Library/Developer/CoreSimulator/Devices/;
files=$(find . -name iaGambro_gambro.sql)
select file in $files; do
if [ -n "$files" ]; then
sudo sqlite3 -header -column "${file}"
fi
break
done
다음 2개의 결과가 반환되어야 합니다.
1) ./2EFF5EBF2B2D/Library/Private Documents/iaGambro_gambro.sql
2) ./A1AF3463BFD2/Library/Private Documents/iaGambro_gambro.sql
그러나 공백으로 인해 다음 4가 반환됩니다 Private Documents
.
1) ./2EFF5EBF2B2D/Library/Private
2) Documents/iaGambro_gambro.sql
3) ./A1AF3463BFD2/Library/Private
4) Documents/iaGambro_gambro.sql
공백이 있는 경로를 선택 인식하도록 하려면 어떻게 해야 합니까?
노트:그냥 인쇄하는 대신 주어진 경로에서 실행하는 방법을 찾고 있습니다.
답변1
다음 옵션을 사용할 수 있습니다 find ... -exec
.
find . -name iaGambro_gambro.sql -exec bash -c '
select file do
: Do something with "$file"
break
done
' bash {} +