![GUIアプリケーションでも動作するように実行可能ファイルにデフォルトのコマンドライン引数を追加するにはどうすればよいですか? [コピー]](https://linux33.com/image/63541/GUI%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%A7%E3%82%82%E5%8B%95%E4%BD%9C%E3%81%99%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E5%AE%9F%E8%A1%8C%E5%8F%AF%E8%83%BD%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AB%E3%83%87%E3%83%95%E3%82%A9%E3%83%AB%E3%83%88%E3%81%AE%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3%E5%BC%95%E6%95%B0%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%82%88%E3%81%84%E3%81%A7%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E3%82%B3%E3%83%94%E3%83%BC%5D.png)
コマンドラインプログラムを実行するときは、デフォルトでそれを渡したいと思います。
myprog --foo=bar
私が考えることができる解決策は、 "bin"フォルダにカスタム "myprog"ラッパーを追加することです。
#! /bin/sh
/usr/bin/myprog --foo=bar $@
良いことは、システムを設定したので、binフォルダがインタラクティブシェルとGUIアプリケーションの両方のPATHにあるので、どこからでもmyprogを呼び出すとデフォルトで--fooフラグが渡されることです。アプリケーションメニューからmyprogを選択します。
しかし、私はラッパースクリプトで絶対パスを使用するのが好きではありません/usr/bin/myprog
(そうでなければ無限ループに陥ります)。もっと良い方法がありますか?
答え1
あなたはそれを使用することができますalias
。からman sh
:
エイリアスエイリアスは、alias(1)組み込みコマンドを使用して設定した名前とその値です。予約語が表示されるたびに(上記を参照)、予約語を確認した後、シェルはその単語がエイリアスと一致することを確認します。その場合、入力ストリームの値に置き換えられます。たとえば、値が「ls -F」で名前が「lf」のエイリアスがある場合は、次のように入力します。
lf foobar ⟨return⟩
would become
ls -F foobar ⟨return⟩
エイリアスは、初心者ユーザーにパラメータを使用して関数を作成する方法を学ぶことなく、コマンドの略語を作成する便利な方法を提供します。語彙的にあいまいなコードの作成にも使用できます。この使用はお勧めできません。