亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 3159 | 回復(fù): 17
打印 上一主題 下一主題

怎樣在輸出內(nèi)容中防止$1這樣的字符被當(dāng)成變量? [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2009-05-14 11:15 |只看該作者 |倒序?yàn)g覽
system(qq(cat > g.sh << END
pscoast -R95/135/21/41 -JM6i -Ggray -Slightblue -B5 -N1 -W1 -I3 -K> $ps
awk '{print $1, $2, $3, 1/$3^1.8*0.025}' site | psxy -R95/135/21/41 -JM6i -O -Cneis.cpt -Sci -Wthin -H >> $ps
END));



這里,$1 $2 $3 會(huì)被當(dāng)作perl的變量,被替換成空內(nèi)容。如何讓perl明白它們是字符串而不是變量?

$ps="abc.ps";
system("cat > g.sh << END
pscoast -R95/135/21/41 -JM6i -Ggray -Slightblue -B5 -N1 -W1 -I3 -K> $ps
awk "{print q($1), q($2), q($3), 1/q($3)^1.8*0.025}" site | psxy -R95/135/21/41 -JM6i -O -Cneis.cpt -Sci -Wthin -H >> $ps
END");

上面這樣,用 q() ,希望作單引號(hào)防止perl進(jìn)行變量替換,但是 q() 會(huì)被當(dāng)作字符。變量替換仍然發(fā)生。


$ps="abc.ps";
system("cat > g.sh << END
pscoast -R95/135/21/41 -JM6i -Ggray -Slightblue -B5 -N1 -W1 -I3 -K> $ps
awk '
{print \$1, \$2, \$3, 1/\$3^1.8*0.025}' site | psxy -R95/135/21/41 -JM6i -O -Cneis.cpt -Sci -Wthin -H >> $ps
END"
);

以上,嘗試用轉(zhuǎn)義符號(hào)防止變量替換,結(jié)果被perl當(dāng)作對變量的引用,仍然發(fā)生變量替換。

[ 本帖最后由 Calvin00 于 2009-5-14 16:19 編輯 ]

論壇徽章:
95
程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-05 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-17 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-18 06:20:002015亞冠之阿爾艾因
日期:2015-09-18 10:35:08月度論壇發(fā)貼之星
日期:2015-09-30 22:25:002015亞冠之阿爾沙巴布
日期:2015-10-03 08:57:39程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00每日論壇發(fā)貼之星
日期:2015-10-05 06:20:002015年亞冠紀(jì)念徽章
日期:2015-10-06 10:06:482015亞冠之塔什干棉農(nóng)
日期:2015-10-19 19:43:35程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-10-21 06:20:00每日論壇發(fā)貼之星
日期:2015-09-14 06:20:00
2 [報(bào)告]
發(fā)表于 2009-05-14 11:23 |只看該作者
原帖由 Calvin00 于 2009-5-14 11:15 發(fā)表
system(qq(cat > g.sh  $ps
awk "{print $1, $2, $3, 1/$3^1.8*0.025}" site | psxy -R95/135/21/41 -JM6i -O -Cneis.cpt -Sci -Wthin -H >> $ps
END));

這里,$1 $2 $3 會(huì)被當(dāng)作perl的變量,被替換成空內(nèi)容。如何讓perl明白它們是字符串而不是變量?

用 \ 轉(zhuǎn)義 $

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2009-05-14 11:37 |只看該作者

回復(fù) #2 MMMIX 的帖子

你是說寫成 \$1 這樣?
試過完全不行,會(huì)被當(dāng)成引用,結(jié)果還是被替換成空內(nèi)容。試過加單引號(hào)也試過,結(jié)果單引號(hào)被當(dāng)作字符輸出,而單引號(hào)內(nèi)部的$1的還是被替換成空內(nèi)容。

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2009-05-14 11:40 |只看該作者
看錯(cuò)了

[ 本帖最后由 DQP 于 2009-5-14 11:42 編輯 ]

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2009-05-14 11:43 |只看該作者
原帖由 DQP 于 2009-5-14 11:40 發(fā)表
你的here-doc 用錯(cuò)了

這里的 here-doc 是 bash 的。
我希望 perl 明白 $1 $2 $3 這三個(gè)東西是字符串,不要作變量替換。而 $ps 是變量,希望作變量替換。

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2009-05-14 11:47 |只看該作者

  1. print qq{\$1};
復(fù)制代碼

output: $1
挺好的啊

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2009-05-14 11:50 |只看該作者
q($1)
qq($ps)

論壇徽章:
95
程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-05 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-17 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-18 06:20:002015亞冠之阿爾艾因
日期:2015-09-18 10:35:08月度論壇發(fā)貼之星
日期:2015-09-30 22:25:002015亞冠之阿爾沙巴布
日期:2015-10-03 08:57:39程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00每日論壇發(fā)貼之星
日期:2015-10-05 06:20:002015年亞冠紀(jì)念徽章
日期:2015-10-06 10:06:482015亞冠之塔什干棉農(nóng)
日期:2015-10-19 19:43:35程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-10-21 06:20:00每日論壇發(fā)貼之星
日期:2015-09-14 06:20:00
8 [報(bào)告]
發(fā)表于 2009-05-14 11:58 |只看該作者
原帖由 Calvin00 于 2009-5-14 11:37 發(fā)表
你是說寫成 \$1 這樣?
試過完全不行,會(huì)被當(dāng)成引用,結(jié)果還是被替換成空內(nèi)容。

給個(gè)能重現(xiàn)/說明這個(gè)問題的完整例子。

論壇徽章:
95
程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-05 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-17 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-18 06:20:002015亞冠之阿爾艾因
日期:2015-09-18 10:35:08月度論壇發(fā)貼之星
日期:2015-09-30 22:25:002015亞冠之阿爾沙巴布
日期:2015-10-03 08:57:39程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00每日論壇發(fā)貼之星
日期:2015-10-05 06:20:002015年亞冠紀(jì)念徽章
日期:2015-10-06 10:06:482015亞冠之塔什干棉農(nóng)
日期:2015-10-19 19:43:35程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-10-21 06:20:00每日論壇發(fā)貼之星
日期:2015-09-14 06:20:00
9 [報(bào)告]
發(fā)表于 2009-05-14 12:03 |只看該作者
原帖由 DQP 于 2009-5-14 11:47 發(fā)表

print qq{\$1};

output: $1
挺好的啊

嗯,我甚至用和樓主的代碼類似的例子測試過,而已沒發(fā)現(xiàn)問題。

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2009-05-14 13:25 |只看該作者
原帖由 hfahe 于 2009-5-14 11:50 發(fā)表
q($1)
qq($ps)

原帖由 DQP 于 2009-5-14 11:47 發(fā)表

print qq{\$1};

output: $1
挺好的啊

原帖由 MMMIX 于 2009-5-14 12:03 發(fā)表

嗯,我甚至用和樓主的代碼類似的例子測試過,而已沒發(fā)現(xiàn)問題。

原帖由 MMMIX 于 2009-5-14 11:58 發(fā)表

給個(gè)能重現(xiàn)/說明這個(gè)問題的完整例子。



第一樓的代碼就是可以完整重現(xiàn)問題的例子。

以上各位回答的,都屬于普遍性的情況。這個(gè)例子情況特殊,因?yàn)槭窃趕ystem()里面。各位把一樓的代碼貼下來自己試試看,確實(shí)都不行的。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP