[Solved]쉘 스크립트 $1 $2 질문입니다.

kombo67의 이미지

find $1 -name "$2" -type f -mtime +30

./logzipdel.sh / *.log // / 경로에서 *.log 인 30일 지난 파일을 찾아라.. 라고 생각하고 넣었거든요
문제는 / 에서 하위까지 찾는단 거고 그것보다 더한 문제는 *.log 로 넘어 오는게 아니라 저 명령어를 치자마자
find에서 찾아낸 smit.log 하나!! 만 나온다는 겁니다

구조를 잘 이해하지 못하는거 같아요 저게 find / -name *.log 를 찾자마자 보이는 smit.log 를 불러왔고
그게 박힌 돌이 되어( True ) 가 되어 딴 것들은 찾지도 않은거 같거든요

진짜 초보라 검색을 해도 못찾겠어서.. ( 아님 검색방법이 틀렸다거나... ) 도움을 요청합니다

1. 제가 바라는 건 30일 지난 "*.log" ( 등의 정규식 ) 을 해당 경로 $1 에서 찾는 것.
ex) oskadasd.log 20150253.log log 1234.log 가 있다면 log를 제외한 나머지를 파일이나 또는 변수에 넣어놓는 것.
최종적으로는 그걸 압축할 예정이기에

ymir의 이미지

* 이 wildcard 라서.. 현재 디렉토리의 .sh 파일들이 차례로 해당 스크립트의 argument 로 들어갔을 겁니다.
만약 현재 디렉토리에 .sh 파일이 없었다면, 원하는 대로 실행되었겠지만요..

두번째 *.sh 를 따옴표로 감싸거나 앞에 \ 를 넣어주면 원하시는 대로 동작할 겁니다.

$ cat a.sh
#!/bin/bash
 
echo "\$* = [$*]"
echo "\$1 = [$1]"
 
exit 0;
$ ./a.sh *.sh
$* = [a.sh b.sh]
$1 = [a.sh]
$ ./a.sh \*.sh
$* = [*.sh]
$1 = [*.sh]
$ ./a.sh "*.sh"
$* = [*.sh]
$1 = [*.sh]
</pre>

되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』

kombo67의 이미지

죄송합니다 이해가 잘 가지않아.. 글을 남기게 되네요 .sh 파일들은 .log 파일 ( 제가 찾고자하는 ) 을 말씀하시는거 같고
테스트 시

bash-4.2# ./logzipdel.sh /etc/ *.log
$* = [/etc/ smit.log]
$1 = [/etc/]
bash-4.2# ./logzipdel.sh /etc/ "*.log"
$* = [/etc/ *.log]
$1 = [/etc/]
bash-4.2#      // 이렇게 되어서 제가 원하는 *.log 를 구할 수 있게 됬습니다

가능하다면 좀더 욕심을 부려서 이해를 해보고 싶어서요..
저기 echo 문을 해석 부탁드려도 될까요 ... [] 문은 둘중에 하나 란 . [ab] 일 떄
a 나 b 가 오면.. 이라고 알고 있었는데 그 지식으론 이해가..ㅜ 안되네요 // 다 개소리였습니다 죄송

여럿 테스트를 거치니 ./logzipdel.sh /etc/ "*.log" 를 했을 때

find $FNAME -name "$2" -type f // 저기서 FNAME은 그냥 디렉입니다
했을 때 정상 출력되네요 .log 로 끝나는 것들 다 보입니다 이 정도 까지 올 수 있게 도와주셔서 감사드리며
이 부분은 혼자 테스트 하면서 검색해보겠습니다 감사합니다

Prentice의 이미지

echo "\$* = [$*]"
echo "\$1 = [$1]"

위 예제에서 [] 문자는 특별한 의미를 가진 것이 아니라, 그냥 출력의 시작과 끝을 표현해주기 위해서 들어간 표시일 뿐입니다.

echo "\$* = >$*<"
echo "\$1 = >$1<"

이렇게 넣으셨더라도 (표시만 다를 뿐이지) 똑같이 작동했을 것입니다.

김정균의 이미지

일단 질문 자체가 이해가 어렵군요. 해당 스크립트의 전체 코드를 보여 주시는 것이 좋을 듯..

그리고, find에서 / 에 있는 파일만 찾고 싶다면

shell> find $1 -maxdepth 1 -name "$2" -type f -mtime +30

이렇게 해 주시면 됩니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.