オプションを含むシンボリックリンク

オプションを含むシンボリックリンク

特定のオプション/引数を使用して実行可能ファイルを実行するシンボリックリンクを生成できますか?

1つの回避策は、PATHディレクトリの1つにbashスクリプトを作成することですが、シンボリックリンクを介して何とか達成できますか?

編集:答えてくれてありがとう。私の場合は、dmenuでmatlabを起動する方法を探していましたが、少なくともアーチmatlabは最初に端末でのみ呼び出すことができたため、エイリアスはこれを実行できませんでした。 dmenuはエイリアスを考慮していないため、機能しません。質問をより明確にする必要があります。

答え1

いいえ、シンボリックリンクは他のファイルへのパスを参照するファイル形式です。

今これを行う:

ln -s /bin/cat foo

次のように呼び出されますfoo

$ ./foo -A /proc/self/cmdline
./foo^@-A^@/proc/self/cmdline^@

あなたは気づくでしょう最初cat/受け取った引数はありませfooん。したがって、ある意味では、対応するシンボリックリンクを通じて、私たちは異なる結果を得ます。./foocatcat最初議論。これはあなたが望むものではないかもしれません最初議論にもかかわらず。

シェルスクリプトラッパーを使用することがこの問題を解決する一般的な方法です。ただし、bashこれに使用する必要はありません。あなたのシステム標準は、sh次の要件を満たすのに十分です。

#! /bin/sh -
exec /path/to/my/executable --extra-option "$@"

他のオプションには、/...でこれまたは関数をalias定義することが含まれます。~/.bashrc~/.zshrc

答え2

私が理解しているように、私は例えば呼び出して実行してUbuntuscript.shで呼び出すとき、実際にはLinuxでのscript.sh arg1ようにエイリアスを使ってgrep --color = autoを呼び出すことができるとします。grep

これを行うには、エイリアスを作成し、ディストリビューションに従って正しいファイルに入れます。たとえば、Ubuntuでは入れることができ~/.bashrcます

alias grep='grep --color=auto'
alias script.sh='script.sh arg1'

詳細は:http://www.hostingadvice.com/how-to/set-command-aliases-linuxubuntudebian/

関連情報