2
我想弄清楚如何让脚本运行得更具可读性。我有多个我想从实际输出中分离出来的命令。如何将重定向字符(“<" and ">”)传递给命令?
我的第一个想法是使用set -x,但是在实际命令的输出之间仍然丢失了。所以,我发现和应用了两个Bash函数,我每个函数调用之前:
#!/usr/bin/env bash
function c_echo(){
local color=$1;
shift
local [email protected];
if ! [[ $color =~ '^[0-9]$' ]] ; then
case $(echo $color | tr '[:upper:]' '[:lower:]') in
black) color=0 ;;
red) color=1 ;;
green) color=2 ;;
yellow) color=3 ;;
blue) color=4 ;;
magenta) color=5 ;;
cyan) color=6 ;;
white|*) color=7 ;; # white or invalid color
esac
fi
tput setaf $color;
echo $exp;
tput sgr0;
}
function script_cmd() {
c_echo YELLOW "\$ [email protected]";
"[email protected]";
}
export -f script_cmd
export -f c_echo
后来我的剧本里:
c_echo GREEN "1. Download insulin (2HIU) and Leucine zipper (2ZTA)."
script_cmd wget https://files.rcsb.org/view/2HIU.cif
这工作完全,但未能在其实际做重定向命令。有没有办法解决这个问题?
script_cmd charmm <setup_2zta.inp> setup_2zta.out
但我也必须输入输入命令吗?我认为这是缺少的 –
对不起,我不明白你的意思。 “管道输入命令”是什么意思? – pynexj
你是否意味着你想为''charmm setup_2zta.out“'整个字符串着色? –
pynexj