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

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



8
Linux bashのチルダの意味(ホームディレクトリではない)
まず、私はそれ~/がホームディレクトリであることを知っています。CDに移動する~か~/、ホームディレクトリに移動します。 しかし、何かcd ~X特別な場所に連れて行ってくれXます。 bashで「cd ~」を押してタブを押すと、およびの~Xような可能なオプションがたくさん表示されます。これらのフォルダーに移動してa を実行すると、これらのフォルダーがホームディレクトリにないことがわかります。彼らは至る所にいます。~mail~postgres~sshpwd それらはエイリアスではありません。確認しました。これらはenv.変数ではないか、そうでなければ$。 これらのリンクの設定とは何ですか。また、これらのリンクが設定されている場所はどこにありますか?

11
unix diff side-to-side results?
どうすればunix diffコマンドの結果を1つずつ差分ではなく左右にプロットできますか?以下の例をご覧ください。 diff /tmp/test1 /tmp/test2 1,4c1,2 < asfdsadf < asdfsad < fsaf < fdsadf --- > asdfsafdsf > saf 6,8d3 < sadf < asdf < sadf 10d4 < fasd 12,13c6,14 < sadfa < fd --- > sadf > sadf > sadf > sadf > sadf > sadf > sadf > …
106 bash  unix  diff 

2
コマンド出力を変数に保存するときに改行を保持するにはどうすればよいですか?
Linuxでbashシェルを使用しています。私はこの簡単なスクリプトを持っています… #!/bin/bash TEMP=`sed -n '/'"Starting deployment of"'/,/'"Failed to start context"'/p' "/usr/java/jboss/standalone/log/server.log" | tac | awk '/'"Starting deployment of"'/ {print;exit} 1' | tac` echo $TEMP ただし、このスクリプトを実行すると ./temp.sh すべての出力は、キャリッジリターン/新しい行なしで印刷されます。出力を$ TEMPに保存する方法なのか、echoコマンド自体なのかわからない。 コマンドの出力を変数に保存し、改行/キャリッジリターンを保持するにはどうすればよいですか?
106 linux  bash  shell  line-breaks 

5
apt-get install tzdatanoninteractive
私がしようとすると apt-get install -y tzdata タイムゾーンを選択するためのコマンドラインオプションが表示されます。これをスクリプトで使用してセットアップを実行しようとしていますが、ユーザー入力なしでapt-getを実行するにはどうすればよいですか? できるtzdataを再構成することを知っています echo "America/New_York" > /etc/timezone dpkg-reconfigure -f noninteractive tzdata ただし、インストールするときは、適切なタイムゾーンが設定されていなくても完全に実行する必要があるため、いつでも再構成できます。 私は試した echo 5 | apt-get install -y tzdata しかし、期待どおりに機能していません。

13
bashスクリプトを使用してすべてのgitブランチを反復処理する方法
bashスクリプトを使用して、リポジトリ内のすべてのローカルブランチを反復処理する方法を教えてください。反復して、ブランチと一部のリモートブランチの間に違いがあるかどうかを確認する必要があります。例 for branch in $(git branch); do git log --oneline $branch ^remotes/origin/master; done 上記のようなことをする必要がありますが、私が直面している問題は$(git branch)で、リポジトリフォルダー内のフォルダーとリポジトリに存在するブランチが表示されます。 これはこの問題を解決する正しい方法ですか?それとも別の方法がありますか? ありがとうございました
105 git  bash  git-bash 

9
変数の値をコマンドの標準入力に渡す方法は?
私は、ある程度安全でなければならない、つまりコマンドのパラメーターを通じて安全なデータを渡さず、できれば一時ファイルを使用しないシェルスクリプトを書いています。コマンドの標準入力に変数を渡すにはどうすればよいですか?または、それが不可能な場合、そのようなタスクに一時ファイルを正しく使用するにはどうすればよいですか?
105 security  bash  stdin 

10
sedが\ tをタブとして認識しないのはなぜですか?
sed "s/\(.*\)/\t\1/" $filename > $sedTmpFile && mv $sedTmpFile $filename このsedスクリプトtabでは、すべての行の前にが挿入されることを期待していますが、$filenameそうではありません。何らかの理由でt代わりにを挿入しています。
105 regex  bash  sed 

4
最終編集日でファイルをリストする
ディレクトリがあります: /home/user/ このディレクトリ内のすべてのファイル(サブディレクトリ内のファイルを含む)を一覧表示し、最後に変更された日付順に並べ替えるにはどうすればよいですか?
104 bash  shell 

7
Bash変数スコープ
最後のechoステートメントが空白である理由を説明してください。XCODEwhileループで値が1に増加することを期待しています。 #!/bin/bash OUTPUT="name1 ip ip status" # normally output of another command with multi line output if [ -z "$OUTPUT" ] then echo "Status WARN: No messages from SMcli" exit $STATE_WARNING else echo "$OUTPUT"|while read NAME IP1 IP2 STATUS do if [ "$STATUS" != "Optimal" ] then echo "CRIT: $NAME …
104 bash  scope  pipe 

4
自作パッケージがインストールされているかどうかを検出する
システムにいくつかの自作パッケージがインストールされているかどうかを検出するシェルスクリプトを記述しようとしています。それを達成するためにbrewコマンドを使用する方法はありますか? の終了コードを使ってみましたbrew install <formula> --dry-run。ただし、パッケージが欠落している場合は、これによってビルドされます。
104 bash  shell  homebrew 

17
各ディレクトリのファイル数を数える方法は?
私はすべてのディレクトリをリストすることができます find ./ -type d 次のコマンドを使用して、各ディレクトリの内容を一覧表示し、各ディレクトリ内のファイル数をカウントしようとしました find ./ -type d | xargs ls -l | wc -l しかし、これはによって返された行の総数を合計した find ./ -type d | xargs ls -l 各ディレクトリのファイル数を数える方法はありますか?
104 linux  bash  ubuntu 

8
bashの関数内でグローバル変数を変更する方法は?
私はこれで働いています: GNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu) 以下のようなスクリプトがあります: #!/bin/bash e=2 function test1() { e=4 echo "hello" } test1 echo "$e" どちらが戻ります: hello 4 しかし、関数の結果を変数に割り当てても、グローバル変数eは変更されません。 #!/bin/bash e=2 function test1() { e=4 echo "hello" } ret=$(test1) echo "$ret" echo "$e" 戻り値: hello 2 この場合のevalの使用について聞いたので、これを次のように実行しましたtest1。 eval 'e=4' しかし同じ結果です。 なぜ変更されないのか説明してもらえますか?test1関数のエコーを保存しretてグローバル変数を変更するにはどうすればよいですか?

7
変数を割り当てただけですが、echo $ variableは別のことを示しています
これは、echo $var割り当てられたばかりの値とは異なる値を示す可能性がある一連のケースです。これは、割り当てられた値が「二重引用符で囲まれた」、「単一引用符で囲まれた」、または引用符で囲まれていないに関係なく発生します。 シェルで変数を正しく設定するにはどうすればよいですか? アスタリスク 予想される出力はですが/* Foobar is free software */、代わりにファイル名のリストが表示されます。 $ var="/* Foobar is free software */" $ echo $var /bin /boot /dev /etc /home /initrd.img /lib /lib64 /media /mnt /opt /proc ... 角括弧 期待される値はですが[a-z]、代わりに1文字が表示されることがあります。 $ var=[a-z] $ echo $var c 改行(改行) 期待される値は個別の行のリストですが、代わりにすべての値が1行にあります! $ cat file foo bar baz $ …
104 bash  shell  sh  quoting 

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