私のリモートホストのIPを持つファイルが存在するかどうかに応じてパラメータを使用して実行し、それ以外の場合は他のパラメータなしでPHPコマンドを実行してエイリアスを指定しようとしています。
このバージョンが利用可能です。
#!/bin/bash
alias php="[ -f path/to/hostip ] && php -dxdebug.remote_host=\"$( < path/to/hostip )\" || php
2つの質問
- 長すぎる(贅沢問題)
- 呼び出すと、追加
php path/to/any/script
のパラメータはPHP呼び出しに渡されません。
関数を試してみましたが、問題#2が修正されました。
#!/bin/bash
function phpx {
if [ -f path/to/hostip ]; then
php -dxdebug.remote_host="$( < path/to/hostip )" "$@"
else
php "$@"
fi
}
しかし、私はまだ問題があります。
- もっと長く(ラグジュアリー問題)
php
関数名のエイリアスとしては使用できません。
私が探しているのはニックネームphp
いいね
alias php='php ( condition | true > pass file content as argument | false > pass nothing )'
エイリアスに追加のパラメータを渡すことができるようにしたいです。
ベストアンサー1
help command
:
command: command [-pVv] command [arg ...]
Execute a simple command or display information about commands.
したがって、command php "$@"
関数内で実行すると、関数の再呼び出しを回避できます。または/usr/bin/php
正しいパスを知る必要があります。
[ condition ] && php args.. || php other args
関数内でこのトリックを引き続き使用できますが、php
最初のphp
コマンドが失敗した場合は後者のコマンドも実行されるため、if .. then .. else
より正確です。もちろん、これを1行のコードで書くこともできますが、関数を自分または.bashrc
このクラスに保存すると仮定すると、長さはそれほど重要ではありません。