私はbashコマンドを含むファイルを持っていますが、それを1つずつ読み込んでevalを呼び出して実行しています。これは "emacs -nw"を実行しようとするまでうまくいきました。私はこの問題を次のように単純化しました。誰でもemacsコマンドが動作しない理由とそれを修正する方法を説明できますか?私はそれがクォートやハイフンで何かを持っていると思われますが、問題を理解することはできません。ファイルからコマンドを読み込んでemacs -nwを起動するのに問題があります
>> cmd="emacs -nw"; echo $cmd; eval $cmd;
予想通り、この作品:
は、これらのケースを考えてみましょう。 Emacsは現在のシェル内で開かれます。
>> cmd="ls /tmp"; echo $cmd; eval $cmd;
期待どおりに動作します。私は/ tmpの内容を見る。
>> echo "emacs -nw" > /tmp/cmds; cat /tmp/cmds |
while read cmd; do echo $cmd; eval $cmd; done
これは機能しません。私はemacs -nwに入力をパイプしてみようとしているかのように、 "emacs:標準入力はttyではありません"というようになります(grepしてパイプを少なくする方法)。
>> echo "ls /tmp" > /tmp/cmds; cat /tmp/cmds |
while read cmd; do echo $cmd; eval $cmd; done
期待どおりに動作するので、引用符/スペースに問題はないと思います。それはハイフンを残しますが、もし私が "ls -alh"と言えば、うまく動作します。
emacsコマンドはどうなっていますか?
ありがとうございました。
eval $ cmd dev/ttyは完全に機能します!ありがとうございました! – Jer
'ls'はstdinを使う必要がないので、問題は表示されません。 –