新しい行を含む行に "eval"コマンドをどのように書くことができますか?

新しい行を含む行に

Bashで同じ行にエイリアスを設定して使用する必要があるので、次のようにしたいと思います。ハウクラグ~の解決策:

eval 'alias df5=df
df5 -h'

(たとえば、dfandを選択しました。この特定の例では、コマンド全体をに置き換えることができることがわかります。)df5evaldf -h

しかし、私はこのコマンドを1行で書くことを好みます。

eval新しい行を含むコマンドを1行に書き込むには?


成功せずに次の1行のコマンドを試しました。

  • eval 'alias df5=df\ndf5 -h'。間違い-bash: alias: -h: not found
  • alias df5=df ; df5。間違い:No command 'df5' found
  • alias df5=df && df5(の提案男の名前)。間違い:No command 'df5' found

ベストアンサー1

あなたが使用しているのでbash

eval $'alias df5=df\ndf5 -h'

これ$'...'は、に渡される前にリテラル改行文字にbash拡張される「C文字列」です。\neval

他のバックスラッシュシーケンスも拡張される可能性があるので注意が必要です。よりマニュアルQUOTINGの後半bash

おすすめ記事