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

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

10
bashエイリアスでGitオートコンプリート?
のgo単純なbashエイリアスとして使用していgit checkout branchnameます。私が見逃しているのは、完全なgit checkout branchna...コマンドで機能するオートコンプリート機能ですが、エイリアスでは機能しません。 別のコマンドのオートコンプリート「ドライバー」を「継承」するようにBashに指示する方法はありますか?
84 git  bash 


2
bashスクリプトで正規表現を使用するにはどうすればよいですか?
正規表現を使用して、変数に有効な年があるかどうかを確認したいと思います。読むbashのマニュアルを演算子=〜を使用できることがわかります。 以下の例を見ると、「OKではない」と表示されるはずですが、「OK」と表示されます。私は何が間違っているのですか? i="test" if [ $i=~"200[78]" ] then echo "OK" else echo "not OK" fi

8
ジョブIDとプロセスIDを出力せずにバックグラウンドでbashコマンドを実行する
bashでバックグラウンドでプロセスを実行するのはかなり簡単です。 $ echo "Hello I'm a background task" & [1] 2076 Hello I'm a background task [1]+ Done echo "Hello I'm a background task" ただし、出力は冗長です。最初の行には、バックグラウンドタスクのジョブIDとプロセスIDが出力され、次にコマンドの出力が表示され、最後にジョブID、そのステータス、およびジョブをトリガーしたコマンドが表示されます。 バックグラウンドタスクの実行の出力を抑制して、出力が最後にアンパサンドがない場合とまったく同じように見えるようにする方法はありますか?すなわち: $ echo "Hello I'm a background task" & Hello I'm a background task 私が尋ねる理由は、タブ補完コマンドの一部としてバックグラウンドプロセスを実行したいので、そのコマンドの出力が意味をなさないようにする必要があるためです。

4
Bashの変数にユーザー入力を読み取る方法は?
iOSデバイスで新しいユーザーを作成するプロセスを簡素化するスクリプトを作成しようとしています。内訳は次のとおりです。 # fullname="USER INPUT" # user="USER INPUT" # group=$user # uid=1000 # gid=1000 # home=/var/$user # echo "$group:*:$gid:$user" >> /private/etc/group # echo "$user::$uid:$gid::0:0:$fullname:$home:/bin/sh" >> /private/etc/master.passwd # passwd $user # mkdir $home # chown $user:$group $home ご覧のとおり、一部のフィールドには入力が必要です。スクリプトで変数の入力を要求するにはどうすればよいですか?
83 bash  shell 


2
bashプロンプトが更新されないのはなぜですか?
私はgitを初めて使用し、現在のgitブランチを既存のプロンプトに追加しようとしています。これは次のように定義されています。 RESET="\[\017\]" NORMAL="\[\033[0m\]" RED="\[\033[31;1m\]" YELLOW="\[\033[33;1m\]" WHITE="\[\033[37;1m\]" SMILEY="${WHITE}:)${NORMAL}" FROWNY="${RED}:(${NORMAL}" SELECT="if [ \$? = 0 ]; then echo \"${SMILEY}\"; else echo \"${FROWNY}\"; fi" export PS1="${RESET}${YELLOW}\u@\h${NORMAL} \`${SELECT}\` ${YELLOW}\w $(__git_ps1) >${NORMAL} " (.bashrcファイルを再度調達して)試してみたところ、機能しているように見えましたが、別のブランチに移動しても更新されませんでした。$(__git_ps1)がキャッシュされていないことを確認するにはどうすればよいですか?
83 git  bash  ps1 

5
JSONの複数行を使用したカール
以下のcurlコマンドを検討してください。JSONで改行を許可し(縮小せずに)、bashで直接実行することは可能ですか(Mac / Ubuntu) curl -0 -v -X POST http://www.example.com/api/users \ -H "Expect:" \ -H 'Content-Type: text/json; charset=utf-8' \ -d \ ' { "field1": "test", "field2": { "foo": "bar" } }' 上記のコマンドを実行second { すると、上記のコマンドを修正する方法でエラーが発生したようです。 更新:実際、以前は問題なくコマンドを実行できましたが、最近問題が発生した理由がわかりません。
83 bash  shell  ubuntu  curl 

5
どのように呼び出されても、実行全体を中止するbash関数を作成する方法はありますか?
bash関数で「exit1」ステートメントを使用してスクリプト全体を終了していましたが、正常に機能しました。 function func() { echo "Goodbye" exit 1 } echo "Function call will abort" func echo "This will never be printed" しかし、次のように呼び出された場合、それは機能しないことに気づきました。 res=$(func) サブシェルを作成し、「exit 1」がプライマリではなく、そのサブシェルを中止することを理解しています。 しかし、どのように呼び出されても、実行全体を中止する関数を作成する方法はありますか?実際の戻り値を取得する必要があります(関数によってエコーされます)。
83 bash  function  exit  subshell 


5
パスワードとしてsudoをパラメーターとして使用する[クローズ]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新することがありますので、話題のスタックオーバーフローのため。 8年前に閉鎖されました。 この質問を改善する パスワードをパラメータとしてsudoを実行し、スクリプトで使用できるようにします。私は試した sudo -S mypassword execute_command しかし、成功しませんでした。助言がありますか?
83 linux  bash  sudo 

2
WindowsでbashスクリプトからOpensslを実行する-件名が「/」で始まらない
私のスクリプトには次のものがあります。 openssl req \ -x509 \ -new \ -nodes \ -key certs/ca/my-root-ca.key.pem \ -days 3652 \ -out certs/ca/my-root-ca.crt.pem \ -subj "/C=GB/ST=someplace/L=Provo/O=Achme/CN=${FQDN}" これをWindowsのGitBash 3.1で実行すると、次のようになります。 Subject does not start with '/'. 次のようにsubjをエスケープしようとしました:-subj \ "/ C = UK / ST = someplace / L = Provo / O = Achme / CN = …
83 windows  string  bash  openssl 

15
Bashの文字列内の各文字に対してforループを実行するにはどうすればよいですか?
私はこのような変数を持っています: words="这是一条狗。" 私は文字のそれぞれ1つずつ、例えば最初にforループを作りたいcharacter="这"、そしてcharacter="是"、character="一"など 私が知っている唯一の方法は、各文字をファイル内の別々の行に出力してから使用することwhile read lineですが、これは非常に非効率的なようです。 文字列内の各文字をforループで処理するにはどうすればよいですか?
83 bash  for-loop 

3
サイクルを構成/作成するためにインクルードパスとライブラリパスを追加するにはどうすればよいですか?
suにアクセスできないLinuxボックスにライブラリをインストールする場所が必要です。〜/ local [/ bin、/ lib、/ include]を使用していますが、。/ configureにライブラリを探すように指示する方法がわかりません(特に、libgifが必要なemacsをコンパイルしようとしています) 、これは私のディストリビューションには含まれていません)。 追加してみました export PATH=$PATH:~/local/bin export LD_LIBRARY_PATH=~/local/lib export C_INCLUDE_PATH=~/local/include export CPLUS_INCLUDE_PATH=~/local/include .bashrcに変換しますが、機能していないようです。

5
jqを使用してJSON文字列をテーブルとしてフォーマットする方法は?
Bashスクリプトから始めて、JSONを操作するためにjqに出くわしました。 以下のようなJSON文字列をターミナルで出力するためのテーブルに変換する必要があります。 [{ "name": "George", "id": 12, "email": "george@domain.com" }, { "name": "Jack", "id": 18, "email": "jack@domain.com" }, { "name": "Joe", "id": 19, "email": "joe@domain.com" }] ターミナルに表示したいもの: ID Name ================= 12 George 18 Jack 19 Joe 各行のemailプロパティを表示したくないので、jqコマンドにはフィルタリングが含まれている必要があります。以下に、名前とIDのわかりやすいリストを示します。 list=$(echo "$data" | jq -r '.[] | .name, .id') printf "$list" それの問題は、それを表のように表示できないことです。jqにはいくつかのフォーマットオプションがあることは知っていますが、を使用するときのオプションほど良くはありませんprintf。これらの値を配列で取得し、それをループしてフォーマットを実行できるようにしたいと思います...?私が試したことは私にさまざまな結果をもたらしますが、私が本当に望んでいることは決してありません。 誰かが私を正しい方向に向けることができますか?
83 json  bash  jq 

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