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

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


3
ファイル記述子を閉じる、>&-vs <&-
私が読んでいるbashチュートリアルでは、読み取りのためにファイル記述子を開くと、つまり exec 3&lt; echolist 次に、このように閉じなければなりません、 exec 3&lt;&amp;- ただし、ファイル記述子を書き込み用に開く場合は、次のように閉じる必要があります。 exec 3&gt;&amp;- しかし、私がインターネットで見ると、人々がファイルを開いて、これでファイルを閉じているのが見えます: exec 3&gt;&amp;- 注:チュートリアルに従って、を使用する必要がある場合exec 3&lt;&amp;1。 だから私の質問は、exec n&gt;&amp;-nがファイル記述子番号である場合、すべてのファイル記述子を閉じることができますか?読み取り、書き込み、またはその両方で開かれたかどうかに関係なく?

2
Bash:コマンドの出力から一度に1行を読み取る方法は?
を使用してbashでコマンドの出力を読み取ろうとしていwhile loopます。 while read -r line do echo "$line" done &lt;&lt;&lt; $(find . -type f) 私が得た出力 ranveer@ranveer:~/tmp$ bash test.sh ./test.py ./test1.py ./out1 ./test.sh ./out ./out2 ./hello ranveer@ranveer:~/tmp$ この後、私は試しました $(find . -type f) | while read -r line do echo "$line" done しかし、それはエラーを生成しましたtest.sh: line 5: ./test.py: Permission denied。 だから、私は現在それが一度に行全体を丸lurみしていると思うので、どのように行ごとに読むのですか? 必要な出力: ./test.py …
49 bash  shell  find  pipe 



1
「…」、「…」、「$」…、および「$」…引用符の違いは何ですか?
時々私はスクリプトがいくつかのテキストを引用し、これらのさまざまな方法のすべてを使用して参照してください"..."、'...'、$'...'、と$"..."。なぜ非常に多くの種類の引用が使用されているのですか? それらは異なる振る舞いをしたり、それらの中で私ができることに影響を与えますか?

8
cronは、「。bashrc」および「.bash_profile」で定義された変数を無視します
/ etc / crontabファイルに「SHELL」変数を定義しました: [martin@martin ~]$ grep SHELL /etc/crontab SHELL=/usr/local/bin/bash [martin@martin ~]$ file /usr/local/bin/bash /usr/local/bin/bash: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), dynamically linked (uses shared libs), for FreeBSD 8.0 (800107), stripped [martin@martin ~]$ さらに、/ etc / crontabファイル内のすべてのスクリプトは、ユーザー「martin」の下で開始されます。ただし、/ home / martin / .bash_profile(ログインシェル用)および/home/martin/.bashrc(非ロギングシェル用)には、cronジョブの場合は無視されますが、マシンにログインする場合に使用される変数が含まれていますSSHまたは新しいbashセッションを開きます。cronがこれらの変数を無視するのはなぜですか?cronは、ユーザー「martin」のアクセス許可で「/ usr / local / bin …
49 bash  cron 

4
sudoパスワードを要求し、bashスクリプトでプログラムによって特権を昇格しますか?
現在、ストックLinuxシステム(現在、Ubuntu)にさまざまなプログラムをインストールおよびセットアップするbashスクリプトに取り組んでいます。プログラムをインストールし、昇格された特権を必要とするさまざまなフォルダーに多数のファイルをコピーするため、標準の「昇格された特権が必要です」を終了しました。 ただし、可能であれば、ユーザーがsudoでスクリプトコマンドを実行しない場合(GUIファイルマネージャーから起動するなど)、sudoパスワードをユーザーに要求し、スクリプトの権限を自動的に昇格できるようにしたいと考えています。ユーザーがスクリプトを再起動する必要はありません。 これは標準のLinuxインストールで実行するように設計されているため、システムを変更するオプションは私の目的には機能しません。すべてのオプションをスクリプト自体に含める必要があります。 これはBash内で可能ですか?もしそうなら、これを行うための最良の(安全でありながら簡潔な)方法は何ですか?
49 bash  sudo 


6
ブレース拡張はいつ使用しますか?
ブレース拡張が何であるかは理解していますが、それをどのように使用するのが最適かわかりません。 いつ使用しますか? あなたがあなた自身のヒントを持っているなら、私にいくつかの便利で注目すべき例を教えてください。

1
bashがスペースで始まるコマンドを保存しないのはなぜですか?
次のような一連のコマンドを実行すると: $ ls $ grep abc file.txt そして、上矢印キーを使用して前のキーを取得すると、端末は最後のcmd(grepここにあります)を表示します しかし、私がこのようなことをしたら: $ ls $ grep abc file.txt whereのgrep前にはスペースがあり、上に押すとlsではなくが与えられますgrep。 どうしてこれなの?


7
ls -dもファイルをリストするのはなぜですか?
指定するときは、次でls --directory a*始まるディレクトリのみをリストする必要がありますa* ただし、次で始まるファイルとディレクトリをリストします a 質問: どこ私は以外に、この上でいくつかのドキュメントを見つけるかもしれないmanし、info私が思うところ、私は徹底的に見えましたか? これはBASHでのみ動作しますか?
48 bash  shell  ls  wildcards  options 

4
配列から要素を完全に削除するにはどうすればよいですか?
unset array[0]要素を削除しますが、まだecho ${array[0]}私がnull値を取得した場合、これを行う他の方法がありますが、配列の要素に次のようなスペースが含まれている場合 array[0]='james young' array[1]='mary' array[2]='randy orton' しかし、これらも仕事をするのに失敗します array=${array[@]:1} #removed the 1st element 今、私は新しい配列を次のようにしたい array[0]='mary' array[1]='randy orton' スペースは割り当て後に問題を引き起こし、実際の配列は置換のようになります。 array=(mary randy orton)

2
開いているファイル記述子を表示するが、lsofコマンドを使用しない方法
こんにちは、私はここでlsofは現在開いているファイル記述子の数を取得する正確な方法ではないことを読みました。彼は代わりにこのコマンドを使用することをお勧めしました cat /proc/sys/fs/file-nr このコマンドはFDの数を表示しますが、上記のコマンドでカウントしたオープンファイル記述子のリストをどのように表示しますか?

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