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

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

2
BASHが「bash:cd:書き込みエラー:成功」を出力したのはなぜですか?
今日は何度か気づきました。入力cd ../Directoryして別のディレクトリに移動すると、「bash:cd:書き込みエラー:成功」と出力されます。他の以前のコマンドがこれに関連している可能性があるのか​​判断できません。 typeset -f 何も印刷しません。 alias 何も印刷しません。 type -a cd 「cd is a shell builtin」と出力します。 echo $CDPATH 空の行を出力します。 $BASH_VERSION 「bash:4.2.37(1)-release:command not found」と出力します。 私はこれを2〜3回しか気づきませんでした。初期ディレクトリとターゲットディレクトリはどちらの場合も同じでした。この方法でディレクトリを何度も変更しましたが、常にエラーが発生するわけではありませんでした。 これは何が原因ですか?
12 bash 

5
$?ifステートメント
function foo { (cd $FOOBAR; <some command> if [$? -ne 0] then echo "Nope!" else echo "OK!" fi ) } 上記のような関数を記述して.bashrcファイルに配置しようとしています。ファイルを入手して実行すると、次のようになります。 合計時間:51秒 -bash:[1:コマンドが見つかりませんでした ! 誰かが私が間違ったことを理解するのを手伝ってくれる?
12 bash  scripting 

8
1行のコマンドを実行してtelnetを使用してリモートTCPポートをテストする
非常に限られた一連のコマンドとディスク容量を備えた多数のLinuxボックスがあります。しかし、それにはtelnetコマンドがあります。 これらの各プローブにリモートで(プログラムで)接続し、SSHを介して1行のlinuxコマンドを発行します。 Telnetを使用して特定のマシンに接続するための単一のコマンドを実行してから、すぐに切断する必要があります。 私はそれをすべて行うことができますが、すぐに切断されます。Telnetがある種のコンソールまたはターミナルを開き、1行のコマンドでtelnetコマンドを実行してすぐに切断することができません。 これを行うと、指定したポートでマシンに接続できないというエラーメッセージのテキスト出力を簡単に解析でき、まさにそれが私が探しているものです。 では、1行のコマンドを実行して、telnetを使用してマシンに接続し、その後切断する方法を教えてください。
12 bash  telnet 

1
.profileと.bash_profileの違いは何ですか?システムに.profileファイルがないのはなぜですか?
だから私はLinuxにかなり慣れていないし、最近ネットブックにFedora 19をインストールした。LinuxとCLIをより深く理解したいので、今はLearn Linux:The Hard Wayを読んでいます。 演習3では、作成者は次のコマンドを提供します。 ls -al 猫のプロフィール 私はこれらの指示に従おうとしますが、役に立ちません。ls -alで確認できるように、ユーザー名ディレクトリに.profileファイルがありません。私が学んだことから、.bash_profileと.profileファイルは実質的に同じです。私の調査から結論付けた唯一の違いは、.bash_profileが最初にチェックされることです。 Linuxで同じ機能のファイルが複数あるのはなぜか、作成者が.bash_profileではなく.profileを使用しているのはなぜですか(システムが.bash_profileを最初に見つけたときに.profileが読み取られない場合)私のシステムに.profileファイルがないのはなぜですか?
12 bash  profile 

4
タブキーなしでオートコンプリートをトリガーするにはどうすればよいですか?
ServerAuditiorと呼ばれるアプリでiPhoneを使用して自分のマシンにssh-ingしています。タブキーはありません。スクリーンショットをご覧ください。 タブキーなしでオートコンプリートをトリガーするにはどうすればよいですか?cd-ingで多くの文字を入力したくありません。 このアプリには矢印キーがあります。矢印キーを使用するには、右下にスワイプします。コマンドの最後にウインカーが入っているときに、それを前向き矢印キーにバインドできたら素晴らしいです。

5
*がドットファイルと一致するかどうかを制御するための、グロビングのbashの設定とは
私が最近何かのようなことをしたときに驚いたのは、のような mv ./* ../somedirectory ファイル.gitignoreが移動されていないことでした。 私はOS Xのzshでほとんどの作業を行っていますが、この驚きはCentOSのbashで私に噛み付きました。OS Xでbashを試してみたところ、同じ動作が見つかりました*。ドットファイルと一致しません。これは私には非常に望ましくないようですが、明らかにbashのデフォルトです。(私が覚えているすべての場合、これもzshのデフォルトである可能性がありますが、.zshrcで何年も前に変更していて、これまでとは異なる動作をしたことを忘れている可能性があります。) 期待どおりに動作するようにbashを構成するにはどうすればよいですか。*がすべてのファイルに一致し、ドットファイルを無視しないようにします。 これがまったく不明確な場合のために、それを再現する方法を次に示します cd /tmp mkdir {t,d}est touch test/{.,}{1,2,3,4,5,6,7} ls -hal test mv test/* dest ls -hal test # notice dot files are still there ls -hal dest # notice only some files were mv'ed
12 bash  wildcards 

4
ファイルをコピーするためのcp対cat
cp a bとcat a > b、違いは何ですか? Linuxカーネルのソースツリー(arch/x86/boot/install.sh)のx86インストールスクリプトでは、両方が使用されます。 cat $2 > $4/vmlinuz cp $3 $4/System.map 一方が他方よりも優れている場合、なぜ同じ形式を維持しないのですか?

3
「tab complete」によって表示されたコマンドのリストをパイプ処理する方法は?
bashでコマンドを使用するとき、使用可能なコマンドを表示するためのダブルタブオプションが好きです。一部のコマンドは、他のコマンドよりも一致する可能性が高くなります。 タブ補完のスクリーンショットhttp://img13.imageshack.us/img13/5541/picturemhy.jpg ダブルタブの出力をパイプラインでsomwehereに送る方法はありますgrepか?関連する投稿を見つけましたが、それを実装してgrepにパイプする方法がわかりません。

3
トラップコマンドの信号0とは何ですか?
私は、ssh-agentを使用してパスワードなしのSSH認証を設定する方法について、このガイドに従っています。 ssh-agentを起動するには、次のコードを推奨します.bash_profile。 SSHAGENT=/usr/bin/ssh-agent SSHAGENTARGS="-s" if [ -z "$SSH_AUTH_SOCK" -a -x "$SSHAGENT" ]; then eval `$SSHAGENT $SSHAGENTARGS` trap "kill $SSH_AGENT_PID" 0 fi なぜそれがによると、信号は0をトラップされて、私は理解していない男性7信号はそのような信号がありません。 これは単なるタイプミスかバグですか、それとも本当に何かを達成していますか?
12 bash  signals  trap 

3
bashはどの正規表現エンジンタイプを使用しますか?
RegExバディを使用して、正規表現のプロトタイプとデバッグを行っています。RegExバディを使用すると、さまざまな正規表現エンジンタイプ(.NET、Java、Perl、GNU BRE、GNU ERE、POSIX、BRE、POSIX EREなど)から選択できます。 bashはどの正規表現エンジンを使用しますか(例:ifand caseステートメント)?Centos 5.5 32ビットとbash 3.2.25(1)を実行しています: [kevin@mon01 scratch]$ bash --version GNU bash, version 3.2.25(1)-release (i686-redhat-linux-gnu) Copyright (C) 2005 Free Software Foundation, Inc. 私はそれがGNU BREまたはGNU EREになると思いますか?


3
ashにbashスタイルの配列に移植する方法は?
少し前に、bashスクリプトを記述しましたが、これはを使用して環境で実行できるはずashです。 でbash、それはのようでした。 services=( "service1.service" "service2.service" "service3.service" ) for service in "${services[@]}" do START $service done START() { echo "Starting "$1 systemctl start $1 } 実際には40ほどのサービスが並んでいますが、この移行をできるだけ簡単でクリーンなものにしたいと考えています。bashisms を常に使用しています。今、私はスクリプトをよりポータブルにするタスクに困っています。 移植性の理由から、おそらく純粋なash解決策があればいいでしょう。しかし、私はbusybox自分の自由にかなり頑強なので、移植性を犠牲にするかもしれません。「クリーン」スクリプトもメトリックであるため、読みやすさが大幅に向上する場合にのみ。 この場合、ポータブルでクリーンなソリューションは何でしょうか?
12 bash  shell  array  ash 

3
ポートがメッセージを受信したときに実行するスクリプトを設定する方法
シェルスクリプトを特定のポートでリッスンする方法を知りたいです(おそらくnetcatを使用していますか?)。うまくいけば、メッセージがそのポートに送信されると、スクリプトがメッセージを記録してから関数を実行します。 例: コンピューター1はスクリプトをバックグラウンドで実行し、スクリプトはポート1234を着信トラフィックに開きました コンピューター2はメッセージ「hello world」をコンピューター1のポート1234に送信します コンピューター1のスクリプトは、メッセージ "hello world"を変数$ MESSAGEに記録します 変数$ MESSAGEが設定されたため、スクリプトは関数を実行します これを寄付するにはどうすればよいですか?

7
Bashの異なるコードポイントでASCII文字を印刷するにはどうすればよいですか?
ASCIIテーブルには、さまざまな数値システムのコードポイントを持つ「J」文字が存在します。 Oct Dec Hex Char 112 74 4A J printf '\112'またはを印刷することにより、この文字を8進コードポイントで印刷 できecho $'\112'ます。10進数と16進数のコードポイントプレゼンテーションで同じ文字を印刷するにはどうすればよいですか?
12 bash  shell  ascii 

5
bash +特殊な形式で印刷するためにprintfを使用
Linuxマシンのリストでpingアクセスを確認するために、次のbashスクリプトを作成しました。 for M in $list do ping -q -c 1 "$M" >/dev/null if [[ $? -eq 0 ]] then echo "($C) $MACHINE CONNECTION OK" else echo "($C) $MACHINE CONNECTION FAIL" fi let C=$C+1 done これは印刷します: (1) linux643 CONNECTION OK (2) linux72 CONNECTION OK (3) linux862 CONNECTION OK (4) linux12 CONNECTION …

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