bash 스크립트에서 underscore ( _ ) 가 있는 변수 스트링을 합칠 때 문제입니다.

dorado2의 이미지

용량이 큰 결과 파일을 분석하는 awk 스크립트를 짜서 분석 중입니다.

시뮬레이션 횟수가 많아서 bash 스크립트로 여러 번 awk를 돌리게 짰는데요.
약간의 불편함이 있어서요.

#!/bin/bash
 
NUMBERS="3 5 10 15 20 25 30"
seed_array=(-33 128712 849715 943164 218764 546168 874166 313467 979416 316497 321679)
 
 
for i in `echo $NUMBERS`;                   # for different node number
do
        echo Step1. Number of nodes: $i
        for j in `seq 1 10`;
        do
 
            echo Step2. $j Simulation.. using seed ${seed_array[$j]}
 
            ns sim.tcl $1 $3 $2 $4 -seed ${seed_array[$j]} > high_$1_$i_$3_low_$2_$i_$4_$j.txt      
 
        done
 
done

위와 같은 bash 스크립트에서

high_$1_$i_$3_low_$2_$i_$4_$j.txt 부분이 이상합니다.

맨 끝에는 $j 가 숫자로 치환되어서 파일명에 포함되는데, 중간에 $i 는 생략이 됩니다.

"high_$1_$i_$3_low_$2_$i_$4_$j.txt" 이렇게 따옴표로 묶어도 마찬가지구요.

아마 중간에 _ 언더스코어 문자가 _$i_ 이런 식으로 들어가면 제대로 동작이 안 되는 것 같은데요.
해결방법이 없을까요?

여기 KLDP bash 쪽을 대략 찾아봐도 잘 모르겠어서요.

wariua의 이미지

bash가 번뇌하지 않도록 변수명을 {, }로 살포시 감싸주시는 건 어떨까요?

...
        ns sim.tcl $1 $3 $2 $4 -seed ${seed_array[$j]} > high_${1}_${i}_${3}_low_${2}_${i}_${4}_${j}.txt
...

----
$PWD `date`

$PWD `date`

pung96의 이미지

${name} 이걸 찾으시는 건가요?

ps. 시간차 공격!!

wariua의 이미지

제가 1분 빨랐습니다 :twisted:
----
$PWD `date`

$PWD `date`

dorado2의 이미지

아 답변감사드립니다.

너무 쉬운거 여쭤보는 거 같아서 조금 죄송스러웠는데,
답변을 빨리 해주시네요

윤봉환의 이미지

새로운 bash에서는 `...` 대신 $(...)를 씁니다.
그리고 굳이 for i in `echo $VAR` 할 것 없이 for i in ${VAR} 로 충분합니다.

放下着-----
내려놓으려는 마음도 내려놓기

댓글 달기

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