4

私の bash スクリプトでは、ファイル内のテキストを探して、bash スクリプトの変数に置き換えます。perl コマンドで認識される変数を取得できませんでした。何か案は?

mybash.bash:

#! /bin/sh
let "myNum=2"# myNum could be any integer
perl -pi -e 's/ABCD\d/ABCD$myNum/g' ./textfile.txt

テキストファイル.txt:

「ABCD0」は、上記のスクリプトで「ABCD」に置き換えられます

4

2 に答える 2

10

変数の補間を有効にするには、二重引用符を使用します。

perl -pi -e "s/ABCD\d/ABCD$myNum/g" ./textfile.txt
           ^^^                   ^^^
于 2013-08-20T06:36:54.680 に答える
0

$($myNum) を使ってみましたか? Bash は変数を実行/評価できる必要がありますか?

また、一重引用符は通常リテラル フィールドを出力し、物事を二重評価するため、上記が機能しない場合はそれをいじる必要があるかもしれません

于 2013-08-20T06:39:57.487 に答える