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

シェルスクリプト、シェルによって解釈される実行可能ファイル(bash、zshなど)に関する質問。


1
bashスクリプトで、「if」ステートメントで条件付き「or」を使用する
この質問は私の以前の質問の一種の続編です。このサイトのユーザーはfor、文字列値を反復処理するbash ループの作成方法を決定してくれました。たとえば、ループ制御変数fnameが文字列を反復処理するとします"a.txt" "b.txt" "c.txt"。echo「はい」にしたいです。when fnameが値"a.txt"or "c.txt"を持ち、echo「no!」そうでなければ。次のbashシェルスクリプトを試しました。 #!/bin/bash for fname in "a.txt" "b.txt" "c.txt" do echo $fname if [ "$fname" = "a.txt" ] | [ "$fname" = "c.txt" ]; then echo "yes!" else echo "no!" fi done 出力を取得します: a.txt 番号! b.txt 番号! c.txt はい! 値があるifときに、ステートメントが明らかにtrueを返すのはなぜですか?間違って使用しましたか?fname"a.txt"|
129 bash  shell-script 

1
二重引用符はいつ必要ですか?
以前は$VARIABLE、少なくともシェルが単一のアイテムとして解釈することを望んでいた場合、を含む式を二重引用符で囲む$VARIABLEことを推奨していました。 ただし、シェルの最近のバージョンでは、二重引用符は必ずしも必要ではありません(少なくとも上記の目的のため)。例えば、中bash: % FOO='bar baz' % [ $FOO = 'bar baz' ] && echo OK bash: [: too many arguments % [[ $FOO = 'bar baz' ]] && echo OK OK % touch 'bar baz' % ls $FOO ls: cannot access bar: No such file or directory ls: cannot access …



7
文字列の比較に等しくない演算子を使用する
PHONE_TYPE変数に3つの有効な値のいずれかが含まれているかどうかを確認しようとしました。 if [ "$PHONE_TYPE" != "NORTEL" ] || [ "$PHONE_TYPE" != "NEC" ] || [ "$PHONE_TYPE" != "CISCO" ] then echo "Phone type must be nortel,cisco or nec" exit fi 上記のコードは私にはうまくいきませんでしたので、代わりにこれを試しました: if [ "$PHONE_TYPE" == "NORTEL" ] || [ "$PHONE_TYPE" == "NEC" ] || [ "$PHONE_TYPE" == "CISCO" ] then …

5
出力をログファイルにリダイレクトし、同時にプロセスをバックグラウンドにできますか?
出力をログファイルにリダイレクトし、同時にプロセスをバックグラウンドにできますか? 言い換えれば、私はこのようなことをすることができますか? nohup java -jar myProgram.jar 2>&1 > output.log & または、それは合法的なコマンドではありませんか?または、次のように手動でバックグラウンドに移動する必要がありますか? java -jar myProgram.jar 2>$1 > output.log jobs [CTRL-Z] bg 1
116 bash  shell  shell-script 

3
リモートマシンでローカルスクリプトを実行し、引数を含めるにはどうすればよいですか?
ローカルで実行すると正常に実行されるスクリプトを作成しました。 ./sysMole -time Aug 18 18 引数"-time"、"Aug"、"18"、および"18"は、スクリプトに正常に渡されます。 現在、このスクリプトは、リモートマシンで実行されるように設計されていますが、ローカルマシンのローカルディレクトリから実行されます。例: ssh root@remoteServer "bash -s" < /var/www/html/ops1/sysMole それもうまくいきます。しかし、たとえば、前述の引数(-time Aug 18 18)を含めようとすると問題が発生します。 ssh root@remoteServer "bash -s" < /var/www/html/ops1/sysMole -time Aug 18 18 そのスクリプトを実行した後、次のエラーが表示されます。 bash: cannot set terminal process group (-1): Invalid argument bash: no job control in this shell 私が間違っていることを教えてください、これは非常にイライラします。

3
linux + X日を追加して新しい仮想日付を取得
Linux(RH 5.3)マシンがあります 10日と日付を追加/計算する必要があるので、新しい日付(有効期限)を取得します) 例えば # date Sun Sep 11 07:59:16 IST 2012 だから私は取得する必要があります NEW_expration_DATE = Sun Sep 21 07:59:16 IST 2012 新しい有効期限の計算方法をアドバイスしてください(bash、ksh、またはdateコマンドの操作?)
115 linux  bash  shell-script  date 

8
名前付き引数をシェルスクリプトに渡す
名前付きパラメーターをシェルスクリプトに渡す(受け取る)簡単な方法はありますか? 例えば、 my_script -p_out '/some/path' -arg_1 '5' そして内部でmy_script.shそれらを受け取ります: # I believe this notation does not work, but is there anything close to it? p_out=$ARGUMENTS['p_out'] arg1=$ARGUMENTS['arg_1'] printf "The Argument p_out is %s" "$p_out" printf "The Argument arg_1 is %s" "$arg1" これはBashまたはZshで可能ですか?




10
Bash FORループの並列化
GNU Parallelを使用して、次のスクリプト、特に3つのFORループインスタンスのそれぞれを並列化しようとしましたが、できませんでした。FORループ内に含まれる4つのコマンドは連続して実行され、各ループには約10分かかります。 #!/bin/bash kar='KAR5' runList='run2 run3 run4' mkdir normFunc for run in $runList do fsl5.0-flirt -in $kar"deformed.nii.gz" -ref normtemp.nii.gz -omat $run".norm1.mat" -bins 256 -cost corratio -searchrx -90 90 -searchry -90 90 -searchrz -90 90 -dof 12 fsl5.0-flirt -in $run".poststats.nii.gz" -ref $kar"deformed.nii.gz" -omat $run".norm2.mat" -bins 256 -cost corratio -searchrx -90 90 …

13
デコードURLエンコード(パーセントエンコード)
URLエンコードをデコードしたいのですが、これを行うための組み込みツールはありますか、またはsedこれを行うコードを提供してくれる人はいますか? unix.stackexchange.comとインターネットを少し検索しましたが、URLエンコードをデコードするためのコマンドラインツールが見つかりませんでした。 私がやりたいことは、txtファイルを編集して、次のようにすることです。 %21 になる ! %23 になる # %24 になる $ %26 になる & %27 になる ' %28 になる ( %29 になる ) 等々。

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