[解決済み] cshスクリプトをbashでソースして環境を設定する方法 [終了しました]。
2022-02-18 05:44:10
質問内容
Solaris上でOracleが動作しており、シェルはデフォルトでcshが使用されています。そのため、ログインスクリプトでは、cshでoracle_home, oracle_sidも設定しています。しかし、私はcshが好きではないので、bashを使って仕事をしたいのです。だから、どのようにbashでcshのログインスクリプトをソースにするのですか?
例えば、.cshrc ファイルには以下のように記述されています。そして、bashを使うときに、これらの変数を使いたいのです。一つの方法は、export ORACLE_SID=TESTのように、変数を再度コピーして、bashコマンドを使用することです。しかし、そうすると、ファイルのコピーを2つ維持する必要があります。それに、データベース名を変更したり、データベースをアップグレードしたりすると、bashのログイン・ファイルを別に管理する必要があるんだ。のようなものを使うだけでいいんです。
source .cshr を bash で実行するのですが、うまくいきません。
setenv ORACLE_SID TEST setenv ORACLE_HOME /oracle/TEST/home/products/10204 setenv EPC_DISABLED TRUE setenv MANPATH /usr/local/man:/usr/share/man setenv EDITOR vi setenv LD_LIBRARY_PATH $ORACLE_HOME/lib:/usr/sfw/lib/64 setenv NLS_LANG AMERICAN_AMERICA.UTF8 setenv NLS_DATE_FORMAT "DD-MON-RR"。
解決するには?
あなたの
~/.bashrc
(または、最初の
~/.bash_profile
,
~/.bash_login
および
~/.profile
が存在する場合)このスクリプトを次のような方法でソースしてください。
. ~/bin/sourcecsh
:
#!/bin/bash
# This should be sourced rather than executed
while read cmd var val
do
if [[ $cmd == "setenv" ]]
then
eval "export $var=$val"
fi
done < ~/.cshrc
このバージョンでは、邪悪な
eval
:
#!/bin/bash
# This should be sourced rather than executed
# yes, it will be sourcing within sourcing - what so(u)rcery!
source /dev/stdin < \
<(
while read cmd var val
do
if [[ $cmd == "setenv" ]]
then
echo "export $var=$val"
fi
done < cshrc
)
編集する
stdinをソースにしない場合。
while read cmd var val
do
if [[ $cmd == "setenv" ]]
then
declare -x "$var=$val"
fi
done < cshrc
関連
-
[解決済み] configureコマンドが見つからない cygwin
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで通常のファイルが存在しないかどうかを判断する方法を教えてください。
-
[解決済み] Bashで文字列変数を連結する方法
-
[解決済み] Bashで文字列が部分文字列を含むかどうかをチェックする方法
-
[解決済み] Bashスクリプトからプログラムが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで文字列をデリミターで分割するには?
-
[解決済み] Bashでコマンドの出力に変数を設定するにはどうすればよいですか?
-
[解決済み] Bashで変数が設定されているかどうかを確認する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】ログアウトと再ログインをせずに.bashrcの設定を再読み込みする方法?
-
[解決済み] find -exec cp {} でエラー 'find: missing argument to -exec' が発生した場合の解決策。TARGET_DIR + [閉店]。
-
[解決済み] ファイルに書き込むが、ファイルが存在する場合は上書きする
-
[解決済み] mkdir コマンドが bash スクリプトで見つかりません。
-
[解決済み] echoコマンドでパイピングが効かない [重複]。
-
[解決済み] シンプルなAsciiテーブルをCSVに変換する【終了】。
-
[解決済み] nohupプロセスを終了させる方法を教えてください。
-
[解決済み] ファイル内の大文字・小文字を区別しない文字列を grep するには?
-
[解決済み] MINGW64 "make build" エラー。"bash: make: コマンドが見つかりません"
-
[解決済み] bashの"-ne "はどういう意味ですか?