bash の 非インタラクティブモード では alias は実行できない

ちょっとハマりかけたのでメモ。

bash で 「alias を使ったら便利!」と 思った処理があったので 使おうと思ったんですが使えませんでした。

[参考]
【Bash】 スクリプト中のaliasコマンドが実行できない - takafumi blog

基本的に 対話モードじゃないとダメらしいです。

確かに 別のコマンドを alias されていたら危険ですね。

PHPWord でキーワードが見つからない場合の対応

PHPWord では 値を挿入する場所などを "${keyword}" のように 定義することができます。

WRITE_0938_01

$phpWord->setValue('keyword1', 'ああああ');
$phpWord->setValue('keyword2', 'いいいい');
$phpWord->setValue('keyword3', 'うううう');

ところが 次のように 値が設定されず キーワードが残ったままに なることがあります。

WRITE_0938_02

列を複写する場合などは 次のようなエラーも出ます。

Can not clone row, template variable not found or variable contains markup.

この「キーワードが残ったままになる(PHPWord がキーワードを見つけられない)」状態は Word ファイルを構成する XML の中で キーワードが分割されてしまっているために 発生するようです。

docx ファイルを zip ファイルに変更して XML として開くと 次のようになってたりします。

WRITE_0938_03

キーワードが途中で分割されているため PHPWord が キーワードとして判定できないようです。

修正方法ですが、普通に WORD ファイルとして開いて キーボードを一旦消します。 そして 手入力せずに クリップボードから貼り付けます。

そのため PHPWord 用のテンプレートファイルを作るときは キーワードを手入力するのではなく クリップボードから貼り付けるようにした方が無難です。

Google サイト内検索

Amazonアソシエイト