일부 HTML 파일을 시도하고 정리하려면 다음 코드를 사용하고 있습니다. $1
디렉터리 이름이어야 합니다. 이는 명령줄에서 제대로 작동하며 요청한 대로 디렉터리의 파일을 변경합니다. 두 경우 모두 echo
표시되지만 $directory
bash 스크립트에서 사용하면 지정된 디렉토리에서 변경 사항이 발생하지 않습니다. 왜? 어떻게 해결할 수 있나요?
#!/bin/bash
directory=$1
echo $directory
LC_CTYPE=C
sed -i.clean -f uncap-html.sed $directory/*.html
echo DONE
답변1
동일한 스크립트를 사용할 때 왜 실패했는지 잘 모르겠습니다.예상대로 작동합니다.
sed.sh
1 #!/bin/bash
2 directory=$1
3 echo $directory
4 LC_CTYPE=C
5 sed -i.clean -f uncap-html.sed $directory/*.html
6 echo DONE
uncap-html.sed
[gc13@oc1245342277 sh]$ cat uncap-html.sed
s/z/o/g
[gc13@oc1245342277 sh]$
1.html
Hello
2.html
World
구현하다
[gc13@oc1245342277 sh]$ cat *.html
Hellz
Wzrld
[gc13@oc1245342277 sh]$
다른 접근 방식을 시도해 볼 수도 있습니다.
#!/bin/bash
FILES="$1/*.html"
echo $FILES
LC_CTYPE=C
sed -i.clean -f uncap-html.sed $FILES
echo DONE