cshで書かれてたshellスクリプトがあり、
それをUbuntuOS上のデフォルトのshellがbashであるような環境で
動かしたいと考えております。
素朴にそれを行おうと思えば、
shellスクリプトの1行目に
lang
1#!/bin/csh -f
と書けば良いですが、
そのスクリプトはcdでディレクトリを移動し、
スクリプト実行後もその影響を残すことを目的としています。
そこで、「source」で実行することで、
これまで目的の挙動を実行していたのですが、
CentOS環境からUbuntuOS環境にこれを移植した際に、
これがうまく動かなくなってしまいました。
端的に言えば、
一行目の「#!/bin/csh -f」が無視されているようです。
例えば次のような
一つ上の階層に戻ることを目的とした
「back.sh」というスクリプトがあったとして、
lang
1#!/bin/csh -f 2 3if ( $1 == '' ) then 4 echo 'Back!' 5 cd .. 6endif
これを
lang
1% source ./back.sh
と実行することで、
これまで目的の挙動を実現していたのですが、
今のUbuntuOS環境でこれを実行すると
lang
1% source ./back.sh 2-bash: ./sh.sh: line 7: syntax error: unexpected end of file
となってしまいます。
長文となってしまい恐縮ですが、
どなたか対処方法を教えていただきたいです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/27 14:17