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

シェルは、Unixのコマンドラインインターフェイスです。シェルにインタラクティブにコマンドを入力するか、スクリプトを記述してタスクを自動化できます。/ bin / shおよび最も互換性のあるシェル(ash、bash、ksh、zshなど)に適用される質問には、このタグを使用します。エラーのあるシェルスクリプトについては、ここに投稿する前にhttp://shellcheck.netで確認してください。

3
変数展開を延期する方法
スクリプトの先頭にあるいくつかの文字列を、まだ設定されていない変数で初期化したいと思っていました。 str1='I went to ${PLACE} and saw ${EVENT}' str2='If you do ${ACTION} you will ${RESULT}' そしてその後にPLACE、EVENT、ACTION、およびRESULT設定されます。次に、変数を展開して文字列を出力できるようにします。私の唯一のオプションevalですか?これはうまくいくようです: eval "echo ${str1}" これは標準ですか?これを行うためのより良い方法はありますか?eval変数が何であってもよいと考えて実行しないのはいいことです。
18 bash  shell  string 



4
パイプを使用したgrepがここで機能しないのはなぜですか?
次のコマンドがあります: find / -name libGL.so.1 「Permission denied」で多くの行を返します。そのような行を除外したいので、次を追加しました: find / -name libGL.so.1 | grep -v 'denied' しかし、出力は同じです-私grep -v 'denied'は行をフィルタリングしませんPermission denied。私は多くのバリエーションを試し、grepチュートリアルを調べましたが、問題を理解することはできません。助言がありますか?
18 shell  grep  pipe 

3
env、setenv、exportと使用する場合の違いは何ですか?
最近、環境変数を設定する3つのオプションがあることに気付きました。 export envVar1=1 setenv envVar2=2 env envVAr3=3 他の方法がある場合は、教えてください。 いつ他を好むべきですか?ガイドラインを提案してください。 シェルの互換性については、どれが最も拡張性がありますか(より多くのシェルの方言をカバーしています)? 私はすでにこの答えに気付いていましたが、質問envと使用設定ガイドラインを拡大したいと思います。

4
ソースコード内のread -pのプロンプトで長い文字列を複数の行に分割する方法は?
として実行されるインストールスクリプトを作成しています/bin/sh。 ファイルの入力を求める行があります: read -p "goat can try change directory if cd fails to do so. Would you like to add this feature? [Y|n] " REPLY この長い行を多くの行に分割して、80文字を超えないようにします。スクリプトのソースコード内の行について話しています。スクリプトの実行時に画面に実際に印刷される行についてではありません! 私が試したもの: フリストアプローチ: read -p "goat can try change directory if cd fails to do so. " \ "Would you like to add this feature? …

3
bashシェルスクリプトループから配列インデックス変数にアクセスしますか?
bashシェルスクリプトで配列をループしながら、配列インデックス変数にアクセスしたい。 myscript.sh #!/bin/bash AR=('foo' 'bar' 'baz' 'bat') for i in ${AR[*]}; do echo $i done 上記のスクリプトの結果は次のとおりです。 foo bar baz bat 私が求める結果は次のとおりです。 0 1 2 3 これを達成するためにスクリプトを変更するにはどうすればよいですか?




2
スクリプトの外部からbash実行トレース(-xを設定)を抑制します
私はこの質問に対する答えを見つけようとしましたが、今のところ運がありません。 他のスクリプトを実行するスクリプトがあり、それらのスクリプトの多くには「set -x」が含まれており、実行するすべてのコマンドが出力されます。それを取り除きたいのですが、スクリプトのいずれかがエラーメッセージをstderrに送信した場合は情報を保持します。 だから私は単に書くことはできません ./script 2>/dev/null また、他のスクリプトを編集する権限がないため、設定オプションを手動で変更することはできません。 私はstderrから個別のファイルまですべてをログに記録し、トレースコマンドを除外することを考えていましたが、おそらくもっと簡単な方法がありますか?
17 bash  shell  set 

5
$ 0や$ 1のシェル/環境変数のような変数はありますか?
以下のようなシェルの変数があり$0、$1、$2、$?、など 次のコマンドを使用して、シェルおよび環境変数を印刷しようとしました。 set しかし、これらの変数はリストにありませんでした。 基本的に、これらの変数はシェル/環境変数とはみなされませんよね?(それらを出力する$場合でも、シェル/環境変数の場合と同様に、先頭にを付ける必要があります)
17 shell 

2
文字列のbash変数の後にスペースを避ける方法は?
色の変数があります。文字列内で評価することにより、文字列に色を設定するために使用します。ただし、名前の後にスペースを含める必要があります(名前にテキストの一部が含まれないようにするため)。これは時々悪く見える。 このスペースの使用(印刷)を避けるにはどうすればよいですか? 例(と言うとRed=1、NC=2): echo -e "$Red Note: blabla$NC". 出力: 1 Note: blabla2. 期待される出力: 1Note: blabla2.

3
プログラムは、カラー出力を行うかどうかをどのように決定しますか?
カラー出力(lsまたはなどgcc)を印刷する端末からコマンドを実行すると、カラー出力が印刷されます。私の理解では、プロセスは実際にANSIエスケープコードを出力しており、端末は色をフォーマットしています。 ただし、別のプロセス(たとえば、カスタムCアプリケーション)で同じコマンドを実行し、出力をアプリケーションの独自の出力にリダイレクトすると、これらの色は持続しません。 プログラムは、テキストをカラー形式で出力するかどうかをどのように決定しますか?環境変数はありますか?

7
UNIXで大きなファイルを作成するには?
私はWindowsでそのようなことをする方法を見つけました echo "This is just a sample line appended to create a big file. " > dummy.txt for /L %i in (1,1,21) do type dummy.txt >> dummy.txt http://www.windows-commandline.com/how-to-create-large-dummy-file/ UNIXでファイルをコピーし、追加してからプロセスを繰り返す方法はありますか?のようなものfor .. cat file1.txt > file1.txt?
17 shell  files 

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