csh 스크립트에서 bash로 작동하는 한 줄의 명령어 넣는 방법?

foruses의 이미지

저는 csh로 주로 스크립트를 만들어 쓰고 있는데요,
bash상태에서 작동하는 하나의 명령어를 중간에 끼어넣어 실행시키고 싶습니다.
즉, csh문법으로 쭈~~욱 작동하다가, bash환경으로 바뀌어서 bash문법에 따라 실행을 하고,
다시 빠져나와서 원래대로 csh문법으로 나머지를 실행하게 하고 싶습니다.
가능할까요?

snowall의 이미지

해당하는 부분만 bash 스크립트로 따로 만들어 놓고, bash라는 명령어에다가 그 스크립트를 넣어주면 되지 않을까요

--------------------------
snowall의 블로그입니다.
http://snowall.tistory.com

피할 수 있을때 즐겨라! http://melotopia.net/b

foruses의 이미지

#!/bin/csh
...csh 명령어들....
bash
...bash 명령어들....

이렇게 해보니, bash로 바뀌는거 까진 되는데 그 이후의 bash 명령어들이 실행이 안되고 스크립트가 끝나버려서요.

bash로 중간에 바꾸려는 이유가, file_1.dat file_2.dat file_3.dat ... file_100.dat를 합치기 위한
cat file_{1..100}.dat > file_all.dat
요 명령어가 bash상태에서는 작동하는데, csh에서는 작동이 안되서 그렇습니다.

chronon의 이미지

별도의 스크립트를 따로 만들어서 ,
예를 들어 bab.sh 라는 파일을 따로 작성하고

#!/bin/csh
 
# csh 명령어들
bash bab.sh

하면 되실 듯.

gamdora의 이미지

스크립트 파일을 분리하고 싶지 않으시면 이렇게 하는 방법도 있어요:

#!/bin/csh
 
echo '\
FOO="BAR"\
echo $FOO  # "BAR" 출력\
' | bash
 
echo $FOO  # 정의되지 않은 변수