root@raspberrypi:~# cat >test
echo succeed
root@raspberrypi:~# <test
root@raspberrypi:~# `<test`
succeed
原因は信号損失のようです。ところで、enter
どのように送りますか?enter
ベストアンサー1
Bashや他のいくつかのシェルでは、`<test`
次の略語です。`cat test`
:
コマンドの置き換えは
$(cat file)
同じですが、より高速なコマンドを置き換えることができます$(< file
。
(-styleコマンドの置き換えも同様です`...`
)。
これはあなたの命令を意味します
$ `<test`
同じですか?
$ `cat test`
- つまり、test
コマンド置換式の代わりにファイルの内容をコマンドラインに挿入してから、コマンドの先頭にあるので、最初の単語をコマンド名の実行結果として使用する。
一方、
$ <test
標準入力がtest
ファイルからリダイレクトされる空のコマンドです。POSIXに似たシェルから。本質的に: <test
何もせずに成功するのと同じです。あまり役に立たないけど、〜するtest
存在しない、または読み込めない場合、エラーが発生します。
>test
作成またはトリミングの反対方向がtest
役に立つ場合もあります。
`<test`
Bash、zsh、kshなどの特殊な無効化動作は、コマンド置換が通常$(<test)
同じコマンドの一般的な動作を複製する方法と一致しません。これは、次のコマンドの利便性とパフォーマンス機能です。
printf '%s@%s\n' $(<username.txt) $(<host.txt)
ファイルの内容をコマンドラインで読み取り、追加のプロセスを保存しようとしています(作成せずにcat
シェル自体にファイルを読み取ることによって)。
違いはそれやそのようなものとは何の関係もありませんEnter。ただ特別なケースに過ぎません。私はあなたがやっていることを明示するのではなく、:useや同様の方法で$(<file)
ファイルを実行することをお勧めしません。使用をお勧めしません。.
source
eval
$(<file)
別の言葉緊密なループにあると確信していない限り、追加のcat
プロセスを作成することが重要です。ここのように人々が混乱する可能性があるからです。これはあまり頻繁に起こるものではありません。