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

shは、バージョン7 Unix以降の標準Unixシェルです。POSIXはBourneシェルに基づく標準化されたシェル動作を備えており、移植可能なシェルスクリプトは標準化された構文に準拠する必要があります。Bourne / POSIXスタイルのシェルに適用される質問には、このタグを使用してください。エラーのあるシェルスクリプトについては、ここに投稿する前にhttp://shellcheck.netで確認してください。

4
ヒアドキュメントをパイプするための複数行の構文。これはポータブルですか?
私はこの構文に精通しています: cmd1 << EOF | cmd2 text EOF しかし、bashを使用すると次のように記述できることがわかりました。 cmd1 << EOF | text EOF cmd2 (ヒアドキュメントはcmd1への入力として使用され、cmd1の出力はcmd2にパイプされます)。これは非常に奇妙な構文のようです。ポータブルですか?
132 bash  shell  pipe  sh  heredoc 

8
Windowsコマンドプロンプトで.shを実行する方法
Windows 7のコマンドプロンプトで.shを実行するにはどうすればよいですか?この行を実行しようとすると、常にこのエラーが発生します。 app/build/build.sh エラー、 'app' is not recognized... または、 bash app/build/build.sh エラー、 'bash' is not recognized... 私が見逃したアイデアはありますか? ここで画面をつかみます
132 windows  bash  command-line  sh 


11
$ PATH変数から冗長パスを削除します
$ PATH変数に同じパスを6回定義しました。 動作するかどうかを確認するためにログアウトしていませんでした。 重複を削除するにはどうすればよいですか? $ PATH変数は次のようになります。 echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/flacs/Programmes/USFOS/bin:/home/flacs/Programmes/USFOS/bin:/home/flacs/Programmes/USFOS/bin:/home/flacs/Programmes/USFOS/bin:/home/flacs/Programmes/USFOS/bin:/home/flacs/Programmes/USFOS/bin どうすればリセットできますか /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games


7
Bashを使用して文字列内の文字の出現をカウントする
Bashを使用して文字列内のcharの出現回数を数える必要があります。 次の例では、チャー(例えば)である場合、tそれは、echosはの出現の正確な数tでvarはなく、文字はコンマまたはセミコロンである場合、それはゼロを出力します: var = "text,text,text,text" num = `expr match $var [,]` echo "$num"
123 bash  shell  sh 

8
バックグラウンドでシェルスクリプトを実行して出力を取得しない方法
2つのシェルスクリプトa.shとを作成しましたb.sh。ではa.shとb.sh私はループの無限を持っていると、彼らはいくつかの端末に出力を印刷します。私は両方を呼び出す別のスクリプトを書きたいa.shとb.sh私は、ユーザーがすぐに端末の制御を取り戻したい、ではなく無限にスクリプトの実行を持つのと私は、端末での出力を非表示にしたいです。

2
ドル記号と括弧内にコマンドを置くと、シェルではどういう意味ですか:$(command)
シェルで次のコード行を理解したいだけです。現在の作業ディレクトリを取得するために使用されます。$(variable)名前が変数名の内部の値を返すことは知っていますが、何が$(command)返されるはずですか?コマンドの実行後に値を返しますか?その場合、を使用`してコマンドを実行できます。 CWD="$(cd "$(dirname $0)"; pwd)" シェルの異なるバージョンでも、次のコード行から同じ出力を取得できます DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 私は、の意味を理解することができません$(cd..と$(dirname。 このコマンドがどのように実行されるかを理解するのを手伝ってくれる人はいますか?
110 bash  shell  terminal  sh  ksh 

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 

10
シェルスクリプトだけを使用してテキストファイルから特定の行を取得する
テキストファイルから特定の行を取得しようとしています。 これまでのところ、オンラインではsedのようなものしか見ていません(bashやsedなどではなく、shしか使用できません)。これを行うには、基本的なシェルスクリプトのみを使用する必要があります。 cat file | while read line do #do something done 上記のように、行を反復する方法を知っていますが、特定の行のコンテンツを取得する必要がある場合はどうなりますか?
100 linux  shell  unix  sh 

3
コードを含むファイルを<< EOF >>する方法
コードをファイルに出力したいcat &lt;&lt;EOF &gt;&gt;: cat &lt;&lt;EOF &gt;&gt; brightup.sh !/bin/bash curr=`cat /sys/class/backlight/intel_backlight/actual_brightness` if [ $curr -lt 4477 ]; then curr=$((curr+406)); echo $curr &gt; /sys/class/backlight/intel_backlight/brightness; fi EOF しかし、ファイル出力を確認すると、次のようになります。 !/bin/bash curr=1634 if [ -lt 4477 ]; then curr=406; echo &gt; /sys/class/backlight/intel_backlight/brightness; fi 一重引用符を付けてみましたが、出力には一重引用符も含まれています。この問題を回避するにはどうすればよいですか?
100 linux  unix  sh  heredoc 


2
Bashまたはシェルスクリプトで関数宣言を転送しますか?
たとえば、bashC / C ++でよく知られている、前方宣言のような、またはそれに似た(回避策)のようなものはありますか? または、たとえば、常に1つのパス(行ごと)で実行されるため、そのようなものがありますか? 前方宣言がない場合、スクリプトを読みやすくするにはどうすればよいですか。それはかなり長く、最初はこれらの関数定義がグローバル変数と混合されているため、スクリプトが見苦しく、読みにくく/理解しにくくなっています)?私はそのような場合のいくつかのよく知られている/ベストプラクティスを学ぶことを求めています。 例えば: # something like forward declaration function func # execution of the function func # definition of func function func { echo 123 }


6
.shファイルとは何ですか?
そのため、私は多数のファイルタイプを扱った経験がなく、.shファイルが正確に何であるかについて多くの情報を見つけることができませんでした。これが私がやろうとしていることです: 個別にダウンロードできるタイルに配置されたマップデータセットをダウンロードしようとしています:http://daymet.ornl.gov/gridded 一度にタイルの範囲をダウンロードするためには、彼らは最終的につながる彼らのスクリプトを、ダウンロードするには言うdaymet-nc-retrieval.sh:https://github.com/daymet/scripts/blob/master/Bash/daymet-nc-retrieval.sh それで、私はこのコードで正確に何をすることになっていますか?ユーザーがそれをどうするかを知っていると仮定して、ウェブサイトはそれ以上の指示を提供しません。ブラウザー用の他の言及されていないアプリケーション(この場合はChromeまたはFirefoxを使用)にコードを貼り付けることになっていると思いますか?Firefox / Greasemonkeyに貼り付けることができるもののように見えますが、完全ではありません。ファイルタイプをグーグルで簡単に調べただけでは、頭や尻尾をつかむことができませんでした。 これらのファイルをどうするかについては簡単な説明があると思いますが、これらのファイルをどうするかを知っていると人々がすでに想定している多くの投稿に埋もれているようです。コードのあるページにアクセスして実際に実装した後、正方形から何をする必要があるかを簡単に言う人はいますか?ありがとう。

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