0

私は自分の端末用にいくつかのカスタムコマンドを作成したいと思います(私はUbuntuを使用しています)。

たとえば、「。bash_aliases」ファイル(/ home / your_user_name /内)を編集し、「source〜/ .bash_aliases」と入力すると、機能するはずです。

('.bash_aliases'に)次のように書くと、実際に機能するものがいくつかあります。

my_comm(){
            if [ "$1" = aaa ]; then
                    echo hi a
            fi

            if [ "$1" = bbb ]; then
                    echo hello b
            fi

            #echo this is a comment :]
            echo ending echo 
    }

次に、ファイルを保存する場合は、「source〜/ .bash_aliases」と入力して、次のコマンドを実行します。

my_comm

印刷されます:

ending echo

と書く

my_comm bbb

あげる:

hello b
ending echo

それはいいですが、私はもう少し知りたいのですが、グーグルでそれらを見つけることができません:(




------------------------------------------質問------- ---------------------------------



(1)変数を設定してから変数を取得するにはどうすればよいですか?

お気に入り:

var myVar = "some_dir"
cd /home/user/'myVar'/some_sub_dir/


(2)頻繁に使用するfind /grepコマンドをショートカットする関数を作成したい:

find . -name "var_1" -print0 | xargs -0 grep -l "var_2"

私は次のようなことをしました:

    ff(){
            find . -name '"$1"' -print0 | xargs -0 grep "$3" '"$2"'
    }

したがって、現在実行中:

ff views.py url -l

私に与えるべきです:

find . -name 'views.py' -print0 | xargs -0 grep -l 'url'

しかし、代わりに私は受け取ります:

grep: find . -name "$1" -print0
: There is no such file or directory



ヘルプpls:)

4

2 に答える 2

2

(1) 変数を設定してから変数を取得するにはどうすればよいですか?

このような:

myVar="/long/name/may have/a space/"
....
cd /home/user/"$myVar"/someSubDir.

二重引用符は、変数の置換を妨げません (一重引用符とは異なります)。

(2) よく使う find/grep コマンドをショートカットする機能を作りたい:

find . -name '"$1"' -print0 | xargs -0 grep "$3" '"$2"'

ここでは、複数の種類の引用符を使用しても何の役にも立ちません。実際、あなたは代用されるのを防ぎ$1、それを防ぎ、$2それがあなたの機能を壊します。これを試して:

find . -name "$1" -print0 | xargs -0 grep "$3" "$2"
于 2013-01-30T18:24:37.370 に答える
0

alias単一の命令にキーワードを使用することも、キーワードを使用functionしていくつかの命令を 1 つに結合することもできます。あなたはこれを見ることができます

于 2013-01-30T18:38:15.273 に答える