
tcshスクリプトでファイルを取得したいです。コードから:
#!/bin/tcsh
unsetenv LD_LIBRARY_PATH
source $1
echo $LD_LIBRARY_PATH > temp_file
予想される結果:sourceコマンドを使用してスクリプトで設定した環境変数は、一時ファイルに印刷されます。
実際の結果:ソースファイルは正常に実行されますが、LD_LIBRARY_PATH
変数はまだ空です。
どのように動作させるためのアイデアはありますか?
ポリスチレン tcsh
確かに私が選択したシェルではありませんが、tcsh
で使用したい多くの環境変数を設定する作業スクリプトがあります。 (毎回シェルを書き換えるbash
ことに加えて)最も簡単な方法は、ソースコードをインポートして印刷することです。tcsh
変数をファイルに追加し、いくつかのシェルマジックを使用してすべてをbashに戻します。
答え1
OpenBSDでcshを使ってみました。私の考えでは、私の例はtcshにも当てはまると思います。
ファイルtest.csh:
#!/bin/csh
source data.csh
echo $VARIABLE
ファイルデータ.csh
#!/bin/csh
setenv VARIABLE 1234
結果:
$ csh test.csh
1234
答え2
追加の参照のためにこの方法は機能しますが、shebangでtcshパスとして使用しないでください。
#!/bin/tcsh
代わりに「env」パスを使用してください。
#!/usr/bin/env tcsh
tcshが別のパスにインストールされているシステムに柔軟性を許可します。たとえば、「tcsh」が「/usr/bin/tcsh」にインストールされている場合、前者は失敗しますが、後者は引き続き機能します。