私はそうすることができるのが好きですexport BROWSER="lynx -cfg=~/.lynx.cfg"
。自分で試して、エイリアス設定も試しましたが、alias lynx="lynx -cfg=~/.lynx.cfg"
何も機能しませんでした。 (この変数を使用してブラウザを起動するツールは、まだ私のプロフィールを無視したり、ブラウザをまったく起動しないという意味です。)
答え1
$BROWSER
多くのユーティリティであなたのWebブラウザを選択すると考えています。
ユーティリティによっては、以下が含まれると予想されます。
- 実行可能ファイルのパスまたは名前
- 最初の単語はパスまたは名前で、他の単語は初期引数のリストである単語のリストです。運が良ければ、シェルが行うのと同様の引用の形式を理解することができます。
- (非常に可能性が低く賢明ではありません)シェルコマンドラインの始まりです。
最初の状況にある場合は、使用しようとしているユーティリティが存在しない"lynx -cfg=~/.lynx.cfg"
コマンドについて文句を言うと予想されます。
~
3番目のケースでは、シェルが-cfg=~/.lynx.cfg
。zsh
これは、このオプションが有効な場合にのみ実行されます。 a は a の左側の内容が有効な変数名のように見え、POSIX モードでない場合にのみ拡張されます。magicequalsubst
bash
~
=
=
しかしlynx
、(私のシステムのバージョン2.8.9dev.16以降)は、それ~
自体をホームディレクトリとして理解しているようです。
$ BROWSER='echo -cfg=~' sensible-browser foo
-cfg=~ foo
したがって、あなたのブラウザは第四カテゴリは、最初の単語を除くすべてを無視するか、ブラウザにその意味を尋ねるメッセージを表示します。あるいは、あなたのバージョンは「ホーム」が何を意味するのかlynx
理解していません。~
ユーティリティを実行して、strace -fe execve the-utility
実行する操作を確認します。
お客様のバージョンが製品ファミリーと見なされlynx
ない場合は、次のように定義できます。~
$BROWSER
export BROWSER="lynx -cfg=$HOME/.lynx.cfg"
($HOME
スペースや引用符(または他のシェル関連文字)がないと仮定)
$BROWSER
とにかく、次のように正しいパラメータをに渡すスクリプトを定義できる必要がありますlynx
。
#! /bin/sh -
exec lynx -cfg="$HOME/.lynx.cfg" "$@"
そしてそれをあなたの$BROWSER
。
ちなみに、$HOME
キャラクターで始まるとばかばかしいことになります。だから、これらのキャラクターを個別に扱うのは良い考えではありません。~
lynx
lynx
~
答え2
私はあなたができないと思いますが、試してみることができます:
絶対パスを使用する必要があります。
export BROWSER='/home/username/lynx.sh'
ホームディレクトリに新しいファイルlynx.shを作成します。
#!/bin/bash
linx -cfg=/home/username/.lynx.cfg
実行可能にしてください。
それから:
Launching Browser should launch lynx.
or
./lynx.sh
および/または:
タイプ:
whereis lynx
次のステップで使用されます。
bash_aliases 編集:
lynx.cfgの絶対パスを使用する必要があります。
lynxの絶対パスを使用する必要があります(/usr/bin/にない場合)。
alias=lynx='/path/to/lynx -cfg=/home/username/.lynx.cfg'
パスに特殊文字が含まれている場合は、「」を使用する必要があります。