1

私は csh スクリプトを持っています。私の目標は、perl モジュール Config::Simple を使用して ini 構成ファイルを読み取ることです。perl コマンドを実行し、結果を 1 つの変数に代入したいと考えています。

perl -MConfig::Simple -e '$cfg = new Config::Simple("../config.ini"); $myvar = $cfg->param("myvar");'

構文は何ですか?

4

4 に答える 4

2

スクリプトの戻り値を変数に受け取りますか? csh の構文はわかりませんが、bash では次のようになります。

myvar=`perl ....`;

しかし、いくつかの変数を設定したい場合は、わかりません。

于 2012-06-01T14:03:39.723 に答える
1

いくつかの変数を設定するにはprint、シェルが評価する perl スクリプトの csh 構文を使用できます。

cshはわかりませんが、bashでは次のようにする必要があります

#!/bin/sh
eval `perl -E 'say "FOO=123"; say "BAR=456"'`
echo "FOO is $FOO"
于 2012-06-01T14:12:06.470 に答える
1

コマンド置換はcsh次のようになります。

#!/bin/csh
set VAR=`perl -E 'say q(hello world)'`
echo ${VAR}

余談ですが、cshlikeの子孫を使用していただければ幸いtcshです。元のcsh実装は、脳死状態の壊れたシェルです。この古典的な論文は、その理由を説明しています。

于 2012-06-01T19:54:29.300 に答える
0

同様の要件があり、perl の代わりに python を使用していました。私の python スクリプトは 3 つの出力文字列を生成していましたが、値を変数として csh に設定する必要がありました。

ここに解決策があります..それが役立つことを願っています!

Python の内部:

私は 3 つの変数を使用していました: x 、 y 、および z

CSH の内部:

set py_opt = `./my_python_script`
set csh_x = `echo $py_opt | sed 's/,/ /g' | awk '{print $1}'`
set csh_y = `echo $py_opt | sed 's/,/ /g' | awk '{print $2}'`
set csh_z = `echo $py_opt | sed 's/,/ /g' | awk '{print $3}'`
于 2012-06-04T08:00:22.080 に答える