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

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


14
Unixシェルスクリプトで環境変数が設定されていることを確認する簡潔な方法は何ですか?
いくつかのUnixシェルスクリプトを持っているので、作業を開始する前に特定の環境変数が設定されていることを確認する必要があるので、次のようにします。 if [ -z "$STATE" ]; then echo "Need to set STATE" exit 1 fi if [ -z "$DEST" ]; then echo "Need to set DEST" exit 1 fi これは多くのタイピングです。環境変数のセットが設定されていることを確認するためのよりエレガントなイディオムはありますか? 編集:私はこれらの変数に意味のあるデフォルト値がないことを言及する必要があります-設定されていない場合、スクリプトはエラーになるはずです。
500 bash  unix  shell 

23
lsコマンド:ファイルごとに1行ずつ、再帰的なフルパスリストを取得するにはどうすればよいですか?
どうすればlsに再帰的な1行ごとのパスのフラットリストを出力させることができますか? たとえば、完全なパスを含むファイルのフラットリストが必要です。 /home/dreftymac/. /home/dreftymac/foo.txt /home/dreftymac/bar.txt /home/dreftymac/stackoverflow /home/dreftymac/stackoverflow/alpha.txt /home/dreftymac/stackoverflow/bravo.txt /home/dreftymac/stackoverflow/charlie.txt ls -a1 私はほとんど私が必要とすることを行いますが、私はパスの断片が必要ではなく、フルパスが必要です。
493 bash  command-line  find  ls 

9
スクリプトファイルの先頭に#!/ bin / bashを配置する必要があるのはなぜですか?
私は作りました 以前にBashスクリプトを作成したあり、それらはすべて#!/bin/bash最初はなくても問題なく実行されました。 それを入れる意味は何ですか?何か違うのでしょうか? また、どのように発音しますか #ますか?私はそれ!が「強打」と発音されることを知っています。 どう#!発音しますか?
487 linux  bash  scripting  shebang 

9
Bashの文字列から固定の接頭辞/接尾辞を削除する
私のbashスクリプトには、文字列とそのプレフィックス/サフィックスがあります。元の文字列からプレフィックス/サフィックスを削除する必要があります。 たとえば、次の値があるとします。 string="hello-world" prefix="hell" suffix="ld" 次の結果を取得するにはどうすればよいですか? result="o-wor"
485 bash 




18
Bash関数から文字列値を返す方法
Bash関数から文字列を返したいのですが。 Javaで例を書いて、私が何をしたいのかを示します: public String getSomeString() { return "tadaa"; } String variable = getSomeString(); 以下の例はbashで機能しますが、これを行うより良い方法はありますか? function getSomeString { echo "tadaa" } VARIABLE=$(getSomeString)

17
ターミナルウィンドウからLinuxでファイルを作成する方法 [閉まっている]
休業。この質問には詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善してみませんか?詳細を追加し、この投稿を編集して問題を明確にしてください。 4ヶ月前に閉鎖。 Linuxターミナルでファイルを作成する最も簡単な方法は何ですか?

19
ファイルへの絶対パスを出力するbash / fishコマンド
質問:フィードしたファイルの絶対パスを出力する単純なsh / bash / zsh / fish / ...コマンドはありますか? 使用ケース:私はディレクトリにいる/a/bと私は、ファイルへのフルパスを印刷したいのですがc、私は簡単に別のプログラムに貼り付けできるように、コマンドラインで:/a/b/c。単純ですが、これを行う小さなプログラムを使用すると、長いパスを処理することになると、おそらく5秒ほど節約できます。そのため、これを行うための標準ユーティリティが見つからないことに驚いています。本当にありませんか? 次に、abspath.pyの実装例を示します。 #!/usr/bin/python # Author: Diggory Hardy <diggory.hardy@gmail.com> # Licence: public domain # Purpose: print the absolute path of all input paths import sys import os.path if len(sys.argv)>1: for i in range(1,len(sys.argv)): print os.path.abspath( sys.argv[i] ) sys.exit(0) else: print >> sys.stderr, …
448 bash  shell  path 

12
特定のコマンドのエラーを無視するbash
次のオプションを使用しています set -o pipefail set -e エラー時に実行を停止するbashスクリプト。実行中のスクリプトが100行まであり、スクリプトのすべての行の戻りコードを確認したくありません。 しかし、ある特定のコマンドについては、エラーを無視したいと思います。どうやってやるの?
444 linux  bash 

4
最初の引数を除くすべての引数を処理します(bashスクリプト内)
最初の引数がファイル名用に予約されている単純なスクリプトがあり、他のすべてのオプションの引数はスクリプトの他の部分に渡す必要があります。 グーグルを使って私はこのウィキを見つけました、しかしそれは文字通りの例を提供しました: echo "${@: -1}" 次のように、他に何も動作しません。 echo "${@:2}" または echo "${@:2,1}" 端末から「不正な置換」が表示されます。 問題は何ですか?また、bashスクリプトに渡された最初の引数を除くすべてをどのように処理できますか?
444 bash  shell 

30
Bash配列に値が含まれているかどうかを確認する
Bashで、配列に特定の値が含まれているかどうかをテストする最も簡単な方法は何ですか? 編集:回答とコメントの助けを借りて、いくつかのテストの後、私はこれを思いつきました: function contains() { local n=$# local value=${!n} for ((i=1;i < $#;i++)) { if [ "${!i}" == "${value}" ]; then echo "y" return 0 fi } echo "n" return 1 } A=("one" "two" "three four") if [ $(contains "${A[@]}" "one") == "y" ]; then echo "contains one" fi if …
443 arrays  bash 


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