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

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

26
Bashで文字列に部分文字列が含まれているかどうかを確認する方法
私はバッシュに文字列があります: string="My string" 別の文字列が含まれているかどうかをどのようにテストできますか? if [ $string ?? 'foo' ]; then echo "It's there!" fi ??私の知らないオペレーターはどこですか。エコーを使用しgrepますか? if echo "$string" | grep 'foo'; then echo "It's there!" fi それは少し不器用に見えます。
2570 string  bash  shell  substring  sh 

12
shとbashの違い
シェルプログラムを書くとき、私たちはしばしば/bin/shand を使います/bin/bash。通常はを使用しますがbash、それらの違いはわかりません。 主な違いは何だbashとはsh? bashandでプログラミングする場合、何に注意する必要がありshますか?
1304 bash  shell  unix  sh 

21
シェルスクリプトでブール変数を宣言して使用するにはどうすればよいですか?
次の構文を使用して、シェルスクリプトでブール変数を宣言しようとしました。 variable=$false variable=$true これは正しいです?また、その変数を更新したい場合、同じ構文を使用しますか?最後に、ブール変数を式として使用するための次の構文は正しいですか? if [ $variable ] if [ !$variable ]
980 bash  shell  scripting  boolean  sh 

13
実行時にシェルコマンドをエコーする方法
シェルスクリプトで、呼び出されたすべてのシェルコマンドをエコーし​​、変数名を展開するにはどうすればよいですか? たとえば、次の行があるとします。 ls $DIRNAME スクリプトでコマンドを実行して次を表示したい ls /full/path/to/some/dir 目的は、呼び出されたすべてのシェルコマンドとその引数のログを保存することです。そのようなログを生成するより良い方法はおそらくありますか?
912 bash  shell  sh  posix  trace 

7
bashスクリプトでset -eはどういう意味ですか?
Debianアーカイブ(.deb)ファイルからパッケージが解凍される前にスクリプトが実行するこのpreinstファイルの内容を調査しています。 スクリプトには次のコードがあります。 #!/bin/bash set -e # Automatically added by dh_installinit if [ "$1" = install ]; then if [ -d /usr/share/MyApplicationName ]; then echo "MyApplicationName is just installed" return 1 fi rm -Rf $HOME/.config/nautilus-actions/nautilus-actions.conf rm -Rf $HOME/.local/share/file-manager/actions/* fi # End automatically added section 私の最初のクエリは行についてです: set -e スクリプトの残りの部分はかなり単純だと思います。Debian/ Ubuntuパッケージマネージャーがインストール操作を実行しているかどうかをチェックします。インストールされている場合は、アプリケーションがシステムにインストールされたばかりかどうかを確認します。含まれている場合、スクリプトは「MyApplicationName is is …
713 linux  bash  shell  sh 

8
シェルスクリプトで論理OR演算を行う方法
簡単な状態チェックを行おうとしていますが、うまくいきません。 場合は$#、ISに等しい0かそれ以上である1、その後挨拶。 私は成功せずに次の構文を試しました: if [ "$#" == 0 -o "$#" > 1 ] ; then echo "hello" fi if [ "$#" == 0 ] || [ "$#" > 1 ] ; then echo "hello" fi
571 bash  unix  if-statement  sh 


5
Bash変数の割り当てでコマンドが見つからないというエラー
test.shというスクリプトがあります。 #!/bin/bash STR = "Hello World" echo $STR 私が実行するsh test.shと、これが得られます: test.sh: line 2: STR: command not found 何が悪いのですか?私は非常に基本的な/初心者のbashスクリプトチュートリアルをオンラインで見て、これは変数を宣言するために彼らが言う方法です...だから私は何が間違っているのかわかりません。 私はUbuntu Server 9.10を使用しています。そして、はい、bashはにあり/bin/bashます。

6
シェルでファイルを変数に読み込む方法は?
ファイルを読み取って変数に保存したいのですが、ファイルを出力するだけでなく、変数を保持する必要があります。これどうやってするの?私はこのスクリプトを書きましたが、それは私が必要とするものではありません: #!/bin/sh while read LINE do echo $LINE done <$1 echo 11111----------- echo $LINE スクリプトでは、ファイル名をパラメーターとして指定できるため、たとえばファイルに "aaaa"が含まれている場合、次のように出力されます。 aaaa 11111----- しかし、これはファイルを画面に出力するだけなので、変数に保存したいと思います。これを行う簡単な方法はありますか?
489 shell  unix  sh 

10
エコーせずにシェルスクリプトからパスワードを取得する方法
パスワードで保護されたシステムへのアクセスを必要とするプロセスを自動化するスクリプトがあります。システムには、ユーザーパスワードを引数として受け入れるコマンドラインプログラムを介してアクセスします。 ユーザーにパスワードを入力してシェル変数に割り当て、その変数を使用してアクセスプログラムのコマンドラインを構築するようにユーザーに促したいと思います(もちろん、処理するストリーム出力を生成します)。 私はBourne / Bashの適度に有能なシェルプログラマーですが、ターミナルにエコー(または「*」文字を使用してエコー)せずにユーザー入力を受け入れる方法がわかりません。 誰かがこれを手伝ってくれる?
424 bash  shell  scripting  sh 

22
シェルスクリプトを使用してmongoコマンドを実行する方法
mongoシェルスクリプト、たとえばスクリプトでコマンドを実行したいtest.sh: #!/bin/sh mongo myDbName db.mycollection.findOne() show collections このスクリプトをを介して実行する./test.shと、MongoDBへの接続は確立されますが、次のコマンドは実行されません。 シェルスクリプトを使用して他のコマンドを実行する方法test.sh?
404 mongodb  bash  shell  sh 

2
IFステートメントを使用する場合、シェルコマンドを複数の行に分割するにはどうすればよいですか?
コマンドがifステートメントの一部である場合、コマンドをシェル内の複数の行に分割するにはどうすればよいですか? これは機能します: if ! fab --fabfile=.deploy/fabfile.py --forward-agent --disable-known-hosts deploy:$target; then rc=1 fi これは機能しません: # does not work: if ! fab --fabfile=.deploy/fabfile.py \ --forward-agent \ --disable-known-hosts deploy:$target; then rc=1 fi コマンド全体を実行する代わりに、以下を取得します。 ./script.sh: line 73: --forward-agent: command not found さらに重要なのは、Bashについての私の理解から何が欠けているのですか?
385 syntax  sh 

24
MacでGNUのreadlink -fの動作を取得するにはどうすればよいですか?
Linuxでは、readlinkユーティリティは-f追加のリンクをたどるオプションを受け入れます。これはMacやBSDベースのシステムでは機能しないようです。同等のものは何でしょうか? デバッグ情報は次のとおりです。 $ which readlink; readlink -f /usr/bin/readlink readlink: illegal option -f usage: readlink [-n] [file ...]
377 macos  freebsd  sh 

11
shの文字列に改行を含めるにはどうすればよいですか?
この STR="Hello\nWorld" echo $STR 出力として生成する Hello\nWorld の代わりに Hello World 文字列に改行を入れるにはどうすればよいですか? 注:この質問はエコーに関するものではありません。 私は知っecho -eていますが、を改行として解釈する同様のオプションを持たない他のコマンドに引数として文字列(改行を含む)を渡すことができる解決策を探しています\n。
337 sh 

18
Dockerコンテナー内でcronジョブを実行する方法
シェルスクリプトを呼び出すDockerコンテナー内でcronjobを実行しようとしています。 昨日、私はWeb全体とスタックオーバーフローを検索してきましたが、実際に機能する解決策を見つけることができませんでした。 これどうやってするの? 編集: 私は、(コメントされた)githubリポジトリーを作成しました。これは、所定の間隔でシェル・スクリプトを呼び出す、動作するdocker cronコンテナーを使用しています。
275 docker  cron  containers  sh 

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