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

他のBourne / POSIXシェルとは対照的に、GNUのBourne Again SHellに固有の質問。Unixシェル全般に関する質問については、代わりに/ shellタグを使用してください。

4
bashでは、任意のバイトカウントオフセットからファイルの読み取りを開始できますか?
8 GBログ(テキスト)のどこかにある日付を見つけたい。 完全な順次読み取りをいくらかバイパスし、最初にファイルのバイナリ分割(サイズ)を行うか、何らかの方法でファイルシステムをナビゲートしinodes(これについてはほとんど知りません)、適切なオフセットが見つかるまで各分割ポイントから読み取りを開始できますか?日付を含む行のテキスト検索を開始する場所 tailの最後の行の読み取りは通常の順次読み取りを使用しないため、この機能が何らかの方法でbashで利用できるのか、PythonまたはC / C ++を使用する必要があるのでしょうか...しかし、私は特にbashオプションに興味があります..

4
引数なしのsetコマンドは何をしますか?
set引数なしのコマンドは何をしますか? ご覧のとおり、envコマンドと同じようにアルファベット順に環境変数が出力されます。さらに、次のようないくつかの異なる情報(変数?関数?)を出力します。 __git_printf_supports_v=yes __grub_script_check_program=grub-script-check ... quote () { local quoted=${1//\'/\'\\\'\'}; printf "'%s'" "$quoted" } quote_readline () { local quoted; _quote_readline_by_ref "$1" ret; printf %s "$ret" } それは何で、どこから来たのですか? set引数のないコマンドに関する情報が見つかりません。実際、Linuxディストリビューションにはmanページがありませんset。
22 bash  set 

6
Sudoを使用したBashスクリプト関数の実行
さまざまな処理を行うスクリプトがありますが、そのほとんどは特別な特権を必要としません。ただし、関数内に含まれている特定のセクションには、ルート権限が必要です。 スクリプト全体をルートとして実行する必要はありません。スクリプト内からルート権限でこの関数を呼び出すことができるようにしたいと考えています。とにかくインタラクティブであるため、必要に応じてパスワードを要求することは問題ではありません。ただし、を使用しようとするとsudo functionx、次のようになります。 sudo: functionx: command not found 予想通り、export違いはありませんでした。いくつかの理由で、関数を分割して個別のスクリプトとして実行するのではなく、スクリプト内で関数を直接実行できるようにしたいと思います。 関数を抽出せずにsudoに「表示」し、適切なディレクトリを見つけて、それをスタンドアロンスクリプトとして実行する方法はありますか。 この関数はそれ自体が1ページの長さであり、二重引用符と単一引用符で囲まれた複数の文字列を含んでいます。また、メインスクリプトの他の場所で定義されているメニュー関数にも依存しています。 sudo ANYを持っている人だけが関数を実行できると期待します。それは、パスワードを変更することの1つです。
22 bash  sudo  function 


2
このシェルスクリプトにバックスラッシュが含まれているのはなぜですか?
conda.shスクリプトのコピーには、次の行があります。 if [ -n "${_CE_CONDA}" ] && [ -n "${WINDIR+x}" ]; then SYSP=$(\dirname "${CONDA_EXE}") else SYSP=$(\dirname "${CONDA_EXE}") SYSP=$(\dirname "${SYSP}") fi 私は前にバックスラッシュがある理由として好奇心dでdirname。私はそれが必要だとは思わない。このバックスラッシュの使用は、ソースファイルの他の場所にも現れます。これを行う理由がありませんか?



1
/ dev / tcpが見つかりません
次のコマンドを実行しようとすると: echo -e "GET / HTTP/1.1\n\n" | /dev/tcp/74.125.225.19/80 次のエラーメッセージが表示されます。 bash: /dev/tcp/74.125.225.19/80: No such file or directory 次のコマンドは完全に機能するため、問題には私がどのように使用しているかが関係します/dev/tcp。 echo -e "GET / HTTP/1.1\n\n" | nc 74.125.225.19 80 私はUbuntu 13.04にいるので、機能は私のシステムにあるはずです。私は何を間違えていますか?/dev/tcp適切に使用するためのルールは何ですか?
21 bash  tcp 

2
ハードリンクは通常のファイルとしてカウントされますか?
これを登録する方法があるかどうか疑問に思っていましたが、ほとんどの最新の検索エンジンは約5語以上の長さのフレーズではうまく機能しないので、これについてはいくらか助けが必要です。 ファイルを特定のタイプとして登録し、それに応じて決定を下す必要があるbashスクリプトを作成しているので、私はこれを疑問に思っていました。これは技術的には私のプロジェクトにとって重要ではありませんが、興味がありました。 また、それらが通常のファイルと見なされる場合、これらのファイルが解析せずにハードリンクされているかどうかを確認する方法はありますls -iか?find -iコマンドを使用せずに、任意のファイルXが他の任意のファイルYにハードリンクされているかどうかを確認する方法はありますか?

1
バックグラウンドプロセスが終了するまで関数が戻らないのはなぜですか?
次のスクリプトを検討してください。 #!/bin/bash function start { leafpad & echo $! } PID=$(start) echo "PID is $PID" このスクリプトは、バックグラウンドプロセスであっても、リーフパッドプロセスが終了するまで閉じかっこを通過し続けません。 どうしてこれなの?関数からバックグラウンドプロセスを起動することはできますか?

3
前のコマンドがSTDOUTに書き込んでいる間に別のコマンドをSTDINに入力しても安全ですか?
おそらくこれは以前に回答されたのでしょうが、別の回答へのリンクを歓迎します... bash次のようなシェルコマンドを(シェルで)実行すると: make その後からの出力は、一方でmakeからでスクロールしているSTDOUTのmakeI型の場合は、コマンドmake checkキーを押しenter最初のコマンドの前には、とき、実行を終了するmakeコマンドが最終的に次のコマンドが終了しmake check、右アップし、実行を選択します。 私の質問は単純です: これは危険ですか? この種のラッシュタイピングにより、予期しない動作が発生する可能性はありますか? なぜこれが機能するのですか?
21 bash  shell  stdout  stdin 

6
ファイルの最後に「>>」以外の行を追加する別の簡単な方法はありますか?
最近、短い文章をtree_holeファイルにエコーしています。 私はecho 'something' >> tree_holeこの仕事をしていました。 しかし、私はこれを頻繁に行ったため、の>代わりにを間違って入力するとどうなるか常に心配していました>>。 そこで、bashrcで独自のグローバルbash funcを作成しました。 function th { echo "$1" >> /Users/zen1/zen/pythonstudy/tree_hole; } export -f th しかし、ファイルの最後に行を追加する別の簡単な方法があるかどうか疑問に思っています。他の機会に頻繁に使用する必要があるかもしれないからです。 何かありますか?

6
実行中のプロセスが終了したときに警告する
そこここにいくつかの質問と回答は、ときに、プロセスが完了/終了(警告さに関してある1、2) -これらは、すべてのユーザーが発行したと仮定に組み込まれた警告とそれをプロセスそのものを言っので、缶スクリプトスクリプトを管理するか、プロセスを何らかのアラートにパイプします。 私の状況は、ユーザーが初期化していないプロセスの完了/終了について警告を受けたいということです。つまり、Ubuntu 12.04 LTSサーバーで大量のビデオファイルを一括処理しています。これらのファイルに対する特定の操作には非常に長い時間がかかるため、特定の操作が終了したときに何らかのアラート(メールは素晴らしい)が欲しいです。それらは非常に時間がかかるため、PITに基づいて手動で1回限りでこれを行うことは完全に問題ありません。 より多くの情報を提供するために-私は特に大きなファイルを処理していて、それがFFMPEGスクリプトに進んでいるとしましょう、プロセス自体はPythonスクリプトです(それは非常に複雑で、自分で書かれていません私は修正したくない-それが最初の論理的アプローチだろうが。実行中のpythonスクリプトのPIDを引数としてコマンドまたはスクリプトを発行し、そのPIDのプロセスが実行されなくなると、アラートスクリプトがその処理を実行することを想像します。 何か案は?
21 bash  process  top  htop 

3
1つのsudoを使用してコマンド行を実行する
たとえば、ファイルを作成し、1行にテキストを入力する場合、>演算子を使用して出力をファイルにリダイレクトできます。 echo "something" > /path/foobar しかし、フォルダにアクセスできず、/path/sudo権限が必要な場合、sudo権限を持つ通常のユーザーと同じコマンドを実行するにはどうすればよいですか? 私は試した sudo echo "something" > /path/foobar しかし、それは機能しません。なぜなら、sudo editは、右の部分 ではなく、> 確かに、私は以前にrootになるsudo suか、tee代わりに使用することができました: echo "something" | sudo tee /path/foobar しかし、私は最後の行を置換として作業できる解決策を見つけたいと思います sudo !! 最後の行を「リサイクル」sudoして前に追加する方法はありませんか?

5
bashスクリプト[x $ 1 = x]
私はbashスクリプトを読んでいますが、そこで何が起こっているのか理解できません。 #!/bin/sh [ x$1 = x ] 2行目で何が起こっているの[ x$1 = x ] ですか?
21 bash  shell 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.