[쉘스크립트:Bash] 입력값을 다른 값으로 변환하구 싶습니다.

voodoostein의 이미지

안녕하세요 쉘스크립트 초보입니다.

여러군데 찾아보았는데 제가 이해를 못한건지 아니면 안되는건지

잘 몰라서 이렇게 극구책으로 여기 QnA란에 올립니다.

제가 구현하고자 하는 스크립트는 간단합니다.

$ ./test H E L L O

테스트라는 스크립트에 인수 H E L L O 를 넣어서
L이 들어오게 되면 숫자 1로 변환을 해서 출력을 하고 싶습니다.

즉 구현을 하게 되면
HE11O이렇게 나오게 되져

어느 위치에서나 ($1,$2,$3...) 사용자로부터 입력된 값(l)을 다른 값으로(1)로 변환하고 싶은데 각종 쉘 스크립트 문서를 찾아봐도 없네요 ㅠㅠ

if문을 써서 L값이 들어오면 1로 바꾸는 표현식을 모르겠습니다.
그리고 입력값(L)을 1값으로 바꾸는 법을 모르겠습니다.

현재 http://doc.kldp.org/HOWTO/html/Adv-Bash-Scr-HOWTO/x10468.html 에 있는 문서를 보고 있는데

잘 안되네요

간단한 힌트나 스크립트 또는 조언을 부탁드리겠습니다.

오늘 하루도 즐거운 하루 되세요

익명 사용자의 이미지

substr 을 이용해서 한자씩 잘라보는 방법이면 되지 않을까요?
(한 단어라면...)

yui의 이미지

인자로 들어온다면 그냥
L이면 1을 출력하고
다른거면 그대로 출력하면 되지 않나요?

#! /bin/sh
for letter in $@; do
        if [ $letter = "L" ]; then
                echo -n 1
        else
                echo -n $letter
        fi
done
echo
alfalf의 이미지

#!/bin/bash
while :
do
    if [ -z "$1" ]
    then
        break
    else
        echo -n "${1//A/1}"
        [ -n "$2" ] && echo -n " "
        shift 1
    fi
done
echo
익명 사용자의 이미지

답변 해주신 님들이 많은 힌트를 주셔서 감사드립니다.

근데 제가 원하는 결과가 안나옵니다. ㅠㅠ

vui님이 올려주신 스크립트는 실행해 봤는데 그냥L만 들어오면 화면에

1을 출력하는것이더군요. 제가 원하는것은 1을 출력을 하는것은 맞긴 맞는데

그 1값을 다시 어느 변수로 넣고 싶습니다.

예) $2값이 L 이구 스크립트로 1로 변환(또는 치환), 그리고 다시 1이 $2값이나 다른 변수값으로 넣고 싶습니다. ㅠㅠ

그리고 알프님이 올려주신 스크립트는 너무 어려워요 ㅠㅠ 무슨말인지 이해가 안됩니다. ㅠㅠ

echo -n "${1//A/1}" < -- 이부분을 이해 못했습니다.

지금 다시 공부하러 갑니다 ㅠㅠ

답변 주신분들 감사드립니다. 에휴 역시 몸으로 부딛힐수밖에 없네요 ㅠㅠ

오늘도 즐거운 하루 되시길 빕니다. 'ㅡ '/

voodoostein의 이미지

답변 주신분들 정말 감사드립니다.

덕분에 하루하고도 반만에 간단한(?) 스크립트를 짰습니다. ㅠㅠ

아 제 책상위에 돌가루가 수북히;;;

정말 고맙습니다. ^^

C'est la vie

raymundo의 이미지

이왕이면 해결하신 결과물을 올려 주시면 다른 분들도 공부가 되고, 더 좋은 방법이 있는지 의논도 할 수 있고 그렇지 않을까요? :-)

좋은 하루 되세요!

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.