,我想出了這個能夠接受-q或-a作爲選項,都與參數:的選項和參數shell腳本 - 基於以下解決方案更新
> #!/bin/bash
>
> input_file="${1:-/dev/stdin}"
>
> while getopts ":qa:" opt; do case $opt in
>
> q)
> string="$OPTARG"
> echo "org = $string"
> grep -v '^>' "$input_file" | grep -x '.\{15,30\}' | sort | uniq -c | awk '{print $2, $1}' | perl -lane ' print ">dme" . $n++ . "_count=$F[1]\n$F[0]" if ($F[1] > 2) '
> ;;
>
> a)
> string="$OPTARG"
> echo "org = $string"
> grep -v '^>' "$input_file" | grep -x '.\{15,30\}' | sort | uniq -c | awk '{print $2, $1}' | perl -lane ' print ">dme" . $n++ . "_count=$F[1]\n$F[0]" if ($F[1] > 2) '
> ;;
>
> \?)
> echo "Invalid option: -$OPTARG" >&2
> exit 1
> ;;
> :)
> echo "Option -$OPTARG requires an argument." >&2
> exit 1
> ;; esac done
./script.sh -q "hsa" < test.txt > trial.txt
誠如,我拿出選項-m。目前,我對選項q和m有相同的說明,僅用於測試目的。選擇一個作品併產生期望的結果。選項q不會引發錯誤,但不會產生相同的結果。
此外,我想從命令行提供的參數傳遞給perl指令,即我想dme被替換爲命令行提供的任何內容。有沒有辦法做到這一點?現在,perl行運行良好。
謝謝!
'./help.sh
sarbbottam
@sarbbottam:管道和過濾器 - 許多程序在unix-like OS從標準輸入讀取並寫入標準輸出 –
'