タグ付けされた質問 「interactive」

6
非対話型シェルでスクリプトを実行しますか?
スクリプトを実行しているcronジョブがあります。対話型シェル(bashに切り替えられた)を介してスクリプトを実行すると、正常に動作します。スクリプトがcronを介して単独で実行されると、失敗します。 私の推測では、対話型シェルで設定された環境変数の一部を使用していると思われます。スクリプトのトラブルシューティングを行い、これらを削除します。 変更を加えた後、cronでスクリプトをキューに入れて通常どおりに実行できることを知っていますが、コマンドラインからスクリプトを実行する方法はありますが、cronから実行するように指示する方法はありますか?すなわち、非インタラクティブな環境で?

1
インタラクティブに使用することを目的とした関数での使用法コメントの表示
私は、.bashrcターミナルでインタラクティブに使用することを意図して、いくつかの関数を定義しています。私は通常、それらの前に、その使用目的を説明するコメントを付けます。 # Usage: foo [bar] # Foo's a bar into a baz foo() { ... } これは、ソースコードを参照する場合は問題ありtypeませんが、関数が何を実行するかをすばやく思い出させるためにターミナルで実行すると便利です。ただし、これには(当然のことながら)コメントは含まれていません。 $ type foo foo is a function foo () { ... } 「このようなコメントtypeが表示され、表示されるようになっていたらいいのではないか」と私は思いました。そして、Pythonのdocstringsの精神で私はこれを思いつきました: foo() { : Usage: foo [bar] : "Foo's a bar into a baz" ... } $ type foo foo is …

3
大きなフォルダー階層でテキストを置き換える方法は?
いくつかのインスタンスを除いて、ファイルの大規模なセットの一部のテキストを検索して置換したい。各行について、その行を置き換える必要があるかどうかを尋ねるプロンプトが必要です。vimに似ていますが(確認を求めるプロンプト:%s/from/to/gcが表示さcれます)、一連のフォルダーに渡ります。使用できる優れたコマンドラインツールまたはスクリプトはありますか?

2
パイプでスクリプトを使用しているときにユーザー入力を読み取る方法
一般的な問題 パイプのチェーンの途中であっても、ユーザーと対話するスクリプトを記述したいと思います。 具体例 具体的には、fileまたはを受け取り、stdin行(行番号付き)を表示し、選択範囲または行番号の入力をユーザーに要求し、対応する行をに出力しstdoutます。このスクリプトを呼び出しましょうselector。それから基本的に、私はできるようになりたいです grep abc foo | selector > myfile.tmp foo含む場合 blabcbla foo abc bar quux xyzzy abc 次に、selector(ターミナルではなく、myfile.tmp!)オプションを表示します 1) blabcbla 2) foo abc bar 3) xyzzy abc Select options: その後入力します 2-3 そして結局 foo abc bar xyzzy abc の内容としてmyfile.tmp。 私はセレクタースクリプトを起動して実行しています。入力と出力をリダイレクトしなければ、基本的には完全に機能しています。そう selector foo 私が望むように動作します。ただし、上記の例のように物事を一緒にパイプする場合、selectorは提示されたオプションをに出力myfile.tmpし、grepped入力から選択を読み取ろうとします。 私のアプローチ 次のように、の-uフラグを使用しようとしましreadた exec 4< /proc/$PPID/fd/0 exec …

8
Python 3.4の新しい履歴機能を無効にするにはどうすればよいですか?
Python 3.4へのアップグレード以降、すべてのインタラクティブコマンドはに記録され~/.python_historyます。Pythonでこのファイルを作成したり書き込んだりしたくありません。 へのシンボリックリンクの作成は/dev/null機能せず、Pythonはファイルを削除して再作成します。ドキュメントには、削除することを提案sys.__interactivehook__するが、これはまた、タブ補完が削除されます。この履歴ファイルの書き込みを無効にし、タブ補完を維持するにはどうすればよいですか? 追加の詳細: ディストリビューション:Arch Linux x86_64 readline 6.3-3 python 3.4.0-2

3
制御端末から切断されたコマンド/スクリプトを呼び出しますか?
通常は自動化されたプロセスとして実行されるスクリプト(cron、Jenkinsなど)の動作を調査しています。スクリプトは、対話的に実行すると、(最終的に)動作が異なる(ユーザー入力を求める)コマンドを呼び出すことができます。たとえば、patchリバースパッチで何をするかをsvn尋ね、パスワードを要求しますが、非対話的に実行するとどうなるかを確認する必要があります。 patch非インタラクティブであることを説得するのはかなり簡単です。stdout非ttyになるようにリダイレクトする必要があります。 $ </dev/null > >(cat) /path/to/myscript --args ただしsvn、存在する場合は制御端末に接続します。渡すスクリプトを編集すること--non-interactiveは、実際にはオプションではありません。これはいくつかのレベルの深さから来ており、すべての呼び出しを見つけたと確信するのは難しいためです。 (/dev/tty存在しないため)制御端末なしで、非対話的にスクリプト/コマンドを呼び出す方法はありますか?私はまだ端末に行くよりstdout / stderrを好みます。 (「非対話型シェルでスクリプトを実行する」という質問を見つけましたが、その答えはcronとユーザー環境の違いについて説明しています。非対話型以外のすべての違いはすでに排除しています。)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.