特定のオプション/引数を使用して実行可能ファイルを実行するシンボリックリンクを生成できますか?
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
ん。したがって、ある意味では、対応するシンボリックリンクを通じて、私たちは異なる結果を得ます。./foo
cat
cat
最初議論。これはあなたが望むものではないかもしれません最初議論にもかかわらず。
シェルスクリプトラッパーを使用することがこの問題を解決する一般的な方法です。ただし、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/