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

Bashコマンドシェル用に記述されたスクリプトに関する質問。エラー/構文エラーのあるシェルスクリプトについては、ここに投稿する前に、shellcheckプログラム(またはhttps://shellcheck.netのWeb shellcheckサーバー)で確認してください。Bashのインタラクティブな使用に関する質問は、スタックオーバーフローよりもスーパーユーザーで話題になる可能性が高くなります。

12
ファイルからロードされた文字列の変数をbashに強制的に展開させる
(ファイルからロードされた)文字列内の変数をbash(force?)で展開する方法を見つけようとしています。 「something.txt」という内容のファイルがあります。 hello $FOO world 次に実行します export FOO=42 echo $(cat something.txt) これは次を返します: hello $FOO world 変数が設定されていても、$ FOOは展開されませんでした。ファイルを評価またはソースすることはできません-ファイルを実行しようとするためです(そのままでは実行できません-変数を補間した文字列が必要です)。 何か案は?
88 linux  bash  shell  unix 

7
Bash変数の最初の文字を取得するにはどうすればよいですか?
私はBash変数を持っています、 $wordこれは時々単語や文です。例: word="tiger" または: word="This is a sentence." 変数にある最初の文字だけに等しい新しいBash変数を作成するにはどうすればよいですか?たとえば、上記は次のようになります。 echo $firstletter t または: echo $firstletter T

10
zipアーカイブ内の1つのファイルを更新する方法
古いファイルを解凍して削除し、新しいファイルを追加して再圧縮せずに、zipファイル内のファイルを置き換えることは可能ですか? 理由は、zipファイルが非常に大きいためです。zipファイル内に1つのxmlがあり、時々更新する必要があります。zipを解凍して再解凍するには長い時間がかかります。そのため、スクリプトを使用して、zip内の1つのxmlを置き換えることができるようにしたいと思います。私はすでに、私が持っているxmlの更新をチェックしています。 それで、解凍して再解凍せずに1つのxmlを置き換えることは可能ですか? 申し訳ありませんが、zipコマンドを使用してそのようなことを行いますが、問題は、スクリプトが実際にはAndroidスマートフォン用であり、zipは使用できるコマンドではないことです。残念ながら、それを省略しました。できれば間違いなくzipを使用していましたが、droidの解凍しかなく、busyboxにtarがありますが、tarは必要なことを実行しません
88 bash  shell  zip 

6
Bashのテキストファイルから配列を作成する
スクリプトはURLを受け取り、それを解析して必須フィールドを探し、その出力をリダイレクトしてファイルfile.txtに保存します。フィールドが見つかるたびに、出力が新しい行に保存されます。 file.txt A Cat A Dog A Mouse etc... file.txt新しいスクリプトで配列を取得して作成したいと思います。このスクリプトでは、すべての行が配列内の独自の文字列変数になります。これまで私が試した: #!/bin/bash filename=file.txt declare -a myArray myArray=(`cat "$filename"`) for (( i = 0 ; i < 9 ; i++)) do echo "Element [$i]: ${myArray[$i]}" done このスクリプトを実行すると、空白が原因で単語が分割され、 必要な出力 Element [0]: A Cat Element [1]: A Dog etc... 私はこれを取得することになります: 実際の出力 Element [0]: A …

7
シェルスクリプトを使用してDockerコンテナ内でスクリプトを実行する
Dockerコンテナを設定するためのシェルスクリプトを作成しようとしています。私のスクリプトファイルは次のようになります。 #!bin/bash docker run -t -i -p 5902:5902 --name "mycontainer" --privileged myImage:new /bin/bash このスクリプトファイルを実行すると、新しく呼び出されたbashでコンテナーが実行されます。 次に、上記のシェルスクリプトからすでにコンテナ内にあるスクリプトファイル(test.sh)を実行する必要があります(例:cd /path/to/test.sh && ./test.sh)これを行うにはどうすればよいですか?
88 bash  shell  docker 

5
bashのif条件で正規表現を使用する
bashのif句で正規表現を使用するための一般的なルールはありますか? ここに例があります $ gg=svm-grid-ch $ if [[ $gg == *grid* ]] ; then echo $gg; fi svm-grid-ch $ if [[ $gg == ^....grid* ]] ; then echo $gg; fi $ if [[ $gg == ....grid* ]] ; then echo $gg; fi $ if [[ $gg == s...grid* ]] ; then …
87 regex  bash 

6
Bashタブ補完スクリプトをzshで使用できますか?
ApacheのHadoop用のBashタブ補完スクリプトがあります。通常、私は日常のシェルとしてzshを使用します。必要なときにかなりbashのようになる傾向がありますが、タブ補完システムはそれらの間で根本的に異なっているように見えます。既存のbash-tab-completion定義をzshで機能するように「変換」する簡単な方法はありますか?これに多くの時間を費やしたくはありませんが、簡単であれば、適度な労力を節約できます。

5
VIM:Ubuntuで正確な行に移動する方法
私はviUbuntu12.10で使用しています。一部のファイルは非常に長いため、ファイルの途中に移動するときは、ページを下に移動するか、下にスクロールする必要があります。 正確な行番号に移動するためのVIMショートカットはありますか?
87 linux  bash  vim  ubuntu  terminal 

3
Bashスクリプトのセマンティクス?
私が知っている他のどの言語よりも、私は何か小さなことが必要になるたびにグーグルでバッシュを「学びました」。その結果、機能しているように見える小さなスクリプトを一緒にパッチワークすることができます。しかし、私は何が起こっているのか本当にわかりません。プログラミング言語としてのBashのより正式な紹介を望んでいました。例:評価順序は何ですか?スコープルールは何ですか?タイピングの分野は何ですか?たとえば、すべてが文字列ですか?プログラムの状態は何ですか?変数名への文字列のキーと値の割り当てです。それ以上のもの、例えばスタックはありますか?ヒープはありますか?等々。 この種の洞察についてはGNUBashのマニュアルを参照しようと思いましたが、それは私が望んでいることではないようです。これは、コアセマンティックモデルの説明というよりも、シンタックスシュガーの洗濯物リストです。オンラインの百万と1つの「bashチュートリアル」はさらに悪いだけです。おそらく私は最初に勉強しsh、Bashをこれに加えて構文糖衣として理解する必要がありますか?しかし、これが正確なモデルであるかどうかはわかりません。 助言がありますか? 編集:私は理想的に私が探しているものの例を提供するように頼まれました。私が「形式的セマンティクス」と考えるもののかなり極端な例は、「JavaScriptの本質」に関するこの論文です。おそらく、少し正式ではない例は、Haskell2010レポートです。

8
URLのリストのHTTPステータスコードを取得するスクリプト?
それでも機能するかどうかを確認するために確認する必要のあるURLのリストがあります。それを行うbashスクリプトを書きたいと思います。 返されたHTTPステータスコード、つまり200、404、500などだけが必要です。これ以上何もない。 編集ページに「404notfound」と表示されているが、200OKメッセージが返される場合は問題があることに注意してください。これは誤って構成されたWebサーバーですが、このケースを考慮する必要がある場合があります。 詳細については、「404」というテキストを含むページにURLが移動するかどうかを確認するをご覧ください。

10
Bashを使用してコマンドの出力を列ごとに分割しますか?
私はこれをしたい: コマンドを実行する 出力をキャプチャします 行を選択します その行の列を選択します 例として、からコマンド名を取得したいとします$PID(これは単なる例であり、これがプロセスIDからコマンド名を取得する最も簡単な方法であることを示唆しているわけではないことに注意してください-私の本当の問題は出力形式を制御できない別のコマンド)。 実行するpsと、次のようになります。 PID TTY TIME CMD 11383 pts/1 00:00:00 bash 11771 pts/1 00:00:00 ps 今、私はやってps | egrep 11383、 11383 pts/1 00:00:00 bash 次のステップ:ps | egrep 11383 | cut -d" " -f 4。出力は次のとおりです。 <absolutely nothing/> 問題はcut、出力を1つのスペースでカットしps、2列目と3列目の間にスペースを追加してテーブルの類似性を維持cutするときに、空の文字列を選択することです。もちろん、cut4番目のフィールドではなく7番目のフィールドを選択するために使用することもできますが、特に出力が可変で事前に不明な場合は、どうすればわかりますか。
87 linux  bash  pipe 

3
VS CodeターミナルにUbuntu on Windows(WSL)でBashを使用するにはどうすればよいですか?
他の質問はgit-bashのようなものの使用方法を扱っていますが、VS Codeのターミナルとして新しいWSLをスピンさせることは同じではありません。それは、git-の代わりに実際のUbuntuLinuxサブシステムで実行されているbashへのアクセスを提供します。 Windowsサブシステムで実行されているbashターミナル。 では、どのようにしてVS Codeターミナルとして機能させるのでしょうか。特に、機能的な開発環境ターミナルとしてどのように機能させるのでしょうか。 git-bashとは異なり、残念ながらこれはそれほど単純ではありません。WSLのUbuntu Linux構成では、WSLとWindows自体の相互作用により、NPMがWindowsプログラムファイルディレクトリから実行しようとする(失敗する)などの問題が発生する可能性があるためです。パスの条件、およびLinuxでの開発に慣れていない人にとって、必ずしもすぐに明らかな理由ではない理由でCompassなどの一部のパッケージが失敗する。apt-getまたはを介してインストールしたときに最も頻繁に使用されるツールが実行されるVSCode用の信頼性の高いWSLターミナル環境を作成する簡単な方法は何npmですか?

4
大きなファイルを切り捨てるためのUnixシェルスクリプト
たとえば3GBのスペースに達すると、アプリケーションによって継続的に書き込まれ/開かれているファイルを切り捨てる/空にするUnixスクリプトを作成しようとしています。私は以下のコマンドがそれを行うことを知っています: cp /dev/null [filename] しかし、これを本番環境でcronジョブとして自動的に実行します。ここに投稿して、これと同様のことをしているときに問題が発生したかどうかを確認してください。
87 bash  shell  truncate 


3
Bashのcaseステートメントで空の文字列をテストするにはどうすればよいですか?
変数の値に基づいてアクションを実行するBashスクリプトがあります。caseステートメントの一般的な構文は次のとおりです。 case ${command} in start) do_start ;; stop) do_stop ;; config) do_config ;; *) do_help ;; esac コマンドが提供されておらずdo_help、コマンドが認識されない場合は、デフォルトのルーチンを実行したいと思います。したがって、case値を省略してみました。 case ${command} in ) do_default ;; ... *) do_help ;; esac 結果は予測可能だったと思います。 syntax error near unexpected token `)' 次に、正規表現を使用してみました。 case ${command} in ^$) do_default ;; ... *) do_help ;; esac これで、空${command}が*ケースに落ちます。 私は不可能なことをしようとしていますか?
87 string  bash  null  case 

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