我有一個csh腳本,我的目標是用perl模塊Config :: Simple讀取ini配置文件。我想執行我的perl命令並將結果賦給一個變量。將變量從perl分配給csh
perl -MConfig::Simple -e '$cfg = new Config::Simple("../config.ini"); $myvar = $cfg->param("myvar");'
什麼是語法?
我有一個csh腳本,我的目標是用perl模塊Config :: Simple讀取ini配置文件。我想執行我的perl命令並將結果賦給一個變量。將變量從perl分配給csh
perl -MConfig::Simple -e '$cfg = new Config::Simple("../config.ini"); $myvar = $cfg->param("myvar");'
什麼是語法?
將腳本的返回值接收到變量中?我續知道CSH語法,但在bash是:
myvar=`perl ....`;
但是,如果你想設置幾個變量,不知道。
若要設置幾個變量,您可以使用shell將評估的perl腳本print
csh語法。
我不知道,但CSH在bash它應該像csh
#!/bin/sh
eval `perl -E 'say "FOO=123"; say "BAR=456"'`
echo "FOO is $FOO"
命令替換完成如下:
#!/bin/csh
set VAR=`perl -E 'say q(hello world)'`
echo ${VAR}
而且,順便說一句,我希望你使用csh
的後代,如tcsh
。原始的csh
實施是一個腦死的炮彈。這個經典的paper描述了爲什麼。
我有一個類似的要求,我用python而不是perl。 我的python腳本正在生成3個輸出字符串,並且需要將值設置爲csh作爲變量。
這是一個解決方案..希望它會有所幫助!
內的Python:
我用三個變量:X,Y和Z我在蟒蛇僅 一個print語句打印了: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}'`
我正在處理別人的腳本......但是你是對的,這是自Phil-H解答以來的最佳解決方案。謝謝。 – user1254498