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

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

11
「sh」または「bash」コマンドを使用せずにシェルスクリプトを実行するにはどうすればよいですか?
「sh」または「bash」コマンドを使用せずに実行したいシェルスクリプトがあります。例えば: の代わりに: sh script.sh 使いたい: script.sh これどうやってするの? PS(i)私はシェルスクリプトをあまり使用せず、エイリアスについて読んでみましたが、エイリアスの使い方がわかりませんでした。 (ii)スクリプトをPATH変数内の別のファイルにリンクする方法についても読みました。大学のサーバーを使用していますが、これらの場所にファイルを作成する権限がありません。
261 bash  shell  alias  sh 


8
UNIXシェルスクリプトのリストから一意の値または個別の値を選択します
値の長いリストを返し、改行で区切られたkshスクリプトがあり、一意の値または個別の値のみを表示したい。これは可能ですか? たとえば、私の出力がディレクトリのファイルサフィックスであるとします。 tar gz java gz java tar class class 次のようなリストを表示したい: tar gz java class
238 bash  unique  distinct  ksh  sh 

3
Ubuntuは「bash:./program Permission denied」と言っています[終了]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 6年前休業。 この質問を改善する コンピューター1とコンピューター2でUbuntuを実行しています。コンピューター1でC ++プログラムをコンパイルしました./program_name。ターミナルからを使用して実行できます。それはうまくいきます。 ただし、これをコンピューター2で実行しようとすると、次のように表示されます。 bash: ./program_name: permission denied 何が問題で、どうすればよいですか?
206 bash  shell  sh 

7
shシェルを使用して文字列を比較する
SHシェルを使用していて、文字列を変数の値と比較しようとしていますが、if条件は常にtrueに実行されます。どうして? ここにいくつかのコードがあります: Sourcesystem="ABC" if [ "$Sourcesystem" -eq 'XYZ' ]; then echo "Sourcesystem Matched" else echo "Sourcesystem is NOT Matched $Sourcesystem" fi; echo Sourcesystem Value is $Sourcesystem ; これでも機能しません: Sourcesystem="ABC" if [ 'XYZ' -eq "$Sourcesystem" ]; then echo "Sourcesystem Matched" else echo "Sourcesystem is NOT Matched $Sourcesystem" fi; echo Sourcesystem Value …
196 shell  unix  sh 

3
Bashヒアドキュメント内で変数を使用する
私はbashのヒアドキュメント内の変数を補間しようとしています: var=$1 sudo tee "/path/to/outfile" > /dev/null << "EOF" Some text that contains my $var EOF これは私が期待するようには機能しません($var文字どおりに扱われ、展開されません)。 sudo teeファイルの作成にはsudo が必要なので、使用する必要があります。次のようなことをする: sudo cat > /path/to/outfile <<EOT my text... EOT >outfilesudoを使用していない現在のシェルでファイルを開くため、機能しません。
192 bash  variables  sh  heredoc 


7
whileループ内で変更された変数は記憶されません
次のプログラムで$fooは、最初のifステートメント内で変数に値1 を設定すると、ifステートメントの後にその値が記憶されるという意味で機能します。ただし、同じ変数をステートメントif内の内の値2に設定するとwhile、whileループの後で忘れられます。ループ$foo内で変数のある種のコピーを使用していて、whileその特定のコピーのみを変更しているように動作しています。ここに完全なテストプログラムがあります: #!/bin/bash set -e set -u foo=0 bar="hello" if [[ "$bar" == "hello" ]] then foo=1 echo "Setting \$foo to 1: $foo" fi echo "Variable \$foo after if statement: $foo" lines="first line\nsecond line\nthird line" echo -e $lines | while read line do if [[ "$line" == "second line" ]] …
187 bash  while-loop  scope  sh 

8
Gitエイリアス-複数のコマンドとパラメーター
複数のGitコマンドと定位置パラメーターの両方を使用するエイリアスを作成しようとしています。それぞれにStackoverflowページがあり、両方を実行するのは非常に明白なように見えますが、問題があります。 例として、ブランチfooに切り替えてステータスを実行したいとします。だから、私の.gitconfig中では: [alias] chs = !sh -c 'git checkout $0 && git status' これは機能しません。一方、このようなものが機能します。 chs = !sh -c 'git checkout $0' echoes = !sh -c 'echo hi && echo bye' どんな洞察もいただければ幸いです。
182 git  sh  alias  git-alias 


8
シェルスクリプトでバッククォートの代わりに$()を使用する利点は何ですか?
コマンドラインの出力をキャプチャする方法は2つありますbash。 レガシーボーンシェルのバックティック``: var=`command` $() 構文(私が知る限り、これはBash固有であるか、少なくとも元のBourneのような非POSIX古いシェルではサポートされていません) var=$(command) バックティックと比較して2番目の構文を使用する利点はありますか?それとも2つは完全に100%同等ですか?
175 syntax  sh  backticks 

4
xargsを使用したシェル関数の呼び出し
xargsを使用して、より複雑な関数を並列に呼び出そうとしています。 #!/bin/bash echo_var(){ echo $1 return 0 } seq -f "n%04g" 1 100 |xargs -n 1 -P 10 -i echo_var {} exit 0 これはエラーを返します xargs: echo_var: No such file or directory これを達成するためにxargsをどのように使用できるか、またはその他の解決策に関するアイデアがあれば歓迎します。
168 bash  sh  xargs 

12
shシェルでソースコマンドが見つかりません
shシェルを使用するスクリプトがあります。sourceコマンドを使用する行でエラーが発生します。それsourceは私のshシェルに含まれていないようです。 sourceシェルから明示的に実行しようとすると、次のようになります。 sh: 1: source: not found どういうわけか「ソース」をインストールする必要がありますか?のバージョンが間違っていshますか?
147 bash  shell  sh 

10
シェルスクリプトでファイル名の拡張子を削除するにはどうすればよいですか?
次のコードの何が問題になっていますか? name='$filename | cut -f1 -d'.'' そのまま、リテラル文字列を取得します$filename | cut -f1 -d'.'が、引用符を削除すると何も取得されません。一方、タイピング "test.exe" | cut -f1 -d'.' シェルでは、私が望む出力を与えますtest。私はすでに$filename正しい値が割り当てられていることを知っています。私がしたいことは、変数に拡張子なしのファイル名を割り当てることです。
143 bash  shell  sh  cut  gnu-coreutils 


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