위의 것도 두가지정도의 방법으로 해결 가능합니다. Here Document도 내부에 치환 가능하면 치환을 합니다.
문제는 +$size1M 이렇게 표기할경우 size1M변수를 치환하려고 들어서 문제 겠지요. 그렇다고 +"$size1"M이렇게 표기하면, Here Document내부에서는 ""(인용부호)까지 포함되어서 문제가 되고... 두가지정도 해결 방법이 있습니다.
1) 입력용 변수를 새로 맹글면 되지요...
input_size1=+"$size1"M
변수 대입에서는 인용부가 기본적으로 사라집니다. (\"처럼 명시적으로 사용하지 않는한 무시됩니다.)
2) 본쉘에서는 않되지만, 변수 확장시 사용할 변수명을 명시 할수 있습니다. KSH이상
${변수명}
fdisk /dev/hda 2>/dev/null 1>/dev/null << EOF
n
p
1
+${size1}M
...
awk를 쓰지 않고 할 수 있는 방법이면 좋겠습니다..
다시 부탁드릴게요 ^^
형태가 고정되어 있다면
음..
echo "hda: 1000 MB" | cut -d' ' -f2
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
위키에 아주 좋은 배쉬 스크립팅 매뉴얼이 번역되어 있습니다.
글쎄요 저라면
글쎄요 저라면 다잘라 버리겠습니다. SIZE라는 것은 어짜피 숫자일테니까요
감사합니다.
덕분에 다양한 정보를 얻을 수 있었네요 ^^
한 가지 더 추가로 질문하고 싶은 것이 있는데요.
if test -b /dev/hda ; then
[ do something ]
fi
와 같은 문장에서 첫번째 줄의 의미가 정확히 어떤 건지를
잘 모르겠더라고요..
도움 부탁드려도 될까요? ^^
음..
http://kldp.org/HOWTO/html/Adv-Bash-Scr-HOWTO/index.html
가볍게 한번 읽어 보시는게 빠르겠군요..
-b 에 대한 설명은
http://kldp.org/HOWTO/html/Adv-Bash-Scr-HOWTO/fto.html
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
감사합니다..
좋은 자료를 알려주셨네요...
물론 위의 질문에 대한 답을 주시는 것도 환영입니다.
지금 부터 알려주신 자료를 읽어보려고 합니다..~ ^^
감사합니다..
결국은 위에서 하려고 했던 일은 성공적으로 마쳤답니다.
하지만,,또 새로운 곳에서 막혀있습니다 ㅜㅜ
간단히 말씀을 드리면,,
size1=1024
size2=1024
fdisk /dev/hda 2>/dev/null 1>/dev/null << EOF
n
p
1
+1024M --> ?
n
p
2
+1024M --> ?
a
1
w
EOF
원래는 위와 같이 상수를 직접 입력해서 Shell Script상에서 fdisk를 이용한
partition작업을 하는 것인데요 ...
위에 있는 size1, size2 변수값을 이용해서 fdisk 안에 있는 상수값을 대체할
수 있는 방법이 있는지를 찾고 있습니다.
몇가지 해보는 중인데,,잘 안되네요.
조언 부탁드립니다.
그냥 변수
그냥 변수 치환으로는 불가능 하던가요? 아님 변수 치환에 익숙 하지 않으신건가요...
위의 것도 두가지정도의 방법으로 해결 가능합니다. Here Document도 내부에 치환 가능하면 치환을 합니다.
문제는 +$size1M 이렇게 표기할경우 size1M변수를 치환하려고 들어서 문제 겠지요. 그렇다고 +"$size1"M이렇게 표기하면, Here Document내부에서는 ""(인용부호)까지 포함되어서 문제가 되고... 두가지정도 해결 방법이 있습니다.
1) 입력용 변수를 새로 맹글면 되지요...
변수 대입에서는 인용부가 기본적으로 사라집니다. (\"처럼 명시적으로 사용하지 않는한 무시됩니다.)
2) 본쉘에서는 않되지만, 변수 확장시 사용할 변수명을 명시 할수 있습니다. KSH이상
감사합니다..
지금 사용하고 있는 Shell이 bash이므로 2)번의 방법은 안되는거겠죠?
첫번째 방법을 사용해보려고 합니다.
위에서 설명해 주신 것처럼 새로운 변수를 만들어서 사용하려 하는데요.
새로운 변수를 만든 후에, fdisk안에 사용된 "+1024M" 자리에
"$새로운변수" 이렇게 넣으면 되는 거겠죠?
혹시 제가 잘 못 이해했다면, 다시 지적해주세요.
설명 감사합니다. ~
배쉬는 두가지 모두
배쉬는 두가지 모두 됩니다.
본쉘 -> sh
배쉬 -> bash == 본쉘어게인
실제로 지원하는 기능은 sh << ksh << bash 입니다.
또 질문이 생겼습니다.
shell을 보다 보니까,,계속 질문이 생기네요..
이걸 이렇게 한 thread에 계속 질문을 해야하는지 좀
헷갈리기도 하지만,,,이번까지는 이렇게 질문을 드리려고 합니다..
다름이 아니고요 ~
10.20.16.60
10.20.16.61
10.20.16.62
10.20.16.63
10.20.16.64
10.20.16.65
라는 내용을 가진 file이 있습니다..IP address list입니다..
이 file을 한줄씩 읽어내서..화면에 표시해 주는 script를 다음과 같이 만들었습니다.
while read line
do
echo "$line"
done < test
잘 동작하는 것을 확인했는데요,,,
여기서 더 해보고 싶은것은,,
file안에 line들을 차례로 display하고 나면,,
다시 첫 line으로 돌아가,,다시 출력을 시작하도록 만들고
또 그것이 끝나면,,다시 첨부터 돌아가서 line을 출력하도록
만드는 것을 해보고 싶어서요..
아직 그건 해결을 못하고 있습니다.
조언 부탁드릴게요 ^^
엥... -_-? 무한
엥... -_-? 무한 반복입니까? 의도하시는 바를 명확하게 이해하질 못하겠습니다. OTL
무한 반복은 아니고요 ..
예를 들면 1시간동안 계속 반복시키고 싶습니다.~
하긴 1시간을 재는 방법도 좀 생각을 해야겠네요..
현재 계획은 1시간동안 반복해서 display하는 것입니다.
그럼 조언 부탁드릴게요 ^^
여전히 의도 하시는
여전히 의도 하시는 바를 모르겠습니다. ㅠ_ㅠ
완전 OTL수준...
뭐 여하튼 1시간 동안 test라는 파일을 계속 반복해서 출력하고 싶다면?
while 문에 입력을 리다이렉션을 할경우 while문 종료시 입력이 닫힙니다. 따라서 다시 while문을 실행해주면 입력 재지정이 다시 처음부터 되는 효과가 있습니다.
감사합니다..
항상 Shell Programming은 ,,자신이 없는 분야인데..
이번에 많은 조언을 받았네요,,
공부를 좀 열심히 해야겠다는 생각도 들고요
다시 감사드립니다..^^
댓글 달기