端末に貼り付けたテキストを解析する関数を作成したいと思います。
$ cat <<eof | grep --color sometext
> foo
> sometext
> sometext1
> a sometext
> asdf
>
> eof
sometext
sometext1
a sometext
上記の操作が機能している間は、エイリアスまたはその機能を作成できません。
alias gsi='cat <<eof | grep --color "$1"'
gsi { cat <<eof | grep --color "$1" ; }
関数定義時にリダイレクトが行われないようです。
ベストアンサー1
alias 'gsi=<<eof grep --color'
置換がシェルコードとして解釈されるプリプロセッサテキスト置換と同じエイリアスとして機能することができます。
あなたのシステムはあなたがやった方法で動作しません"$1"
。gsi file.txt
で置き換えられたcat <<eof | grep --color "$1" file.txt
シェルはコマンドラインの解釈を行い、$1
この時点であらかじめ実行しない限り、シェルの最初の位置引数は空にすることができますset something
。だから"$1"
ここで削除したいと思います。 UUOCを削除することもできます。
gsi() { cat <<eof | grep --color "$1" ; }
eof
後ろの行が欠落しているため、構文的な観点から見ると間違っていますcat <<eof
。