Bash
’expr:語法錯誤:意外參數’ - 來自別名的結果
我最近在我的 .bash_aliases 文件中添加了一個別名:
alias runhole="perfect && cd data_series_test && doa=$(ls -1 | wc -l) && a=$(expr $doa / 2 ) && perfect && cd data_series_train && dob=$(ls -1 | wc -l) && b=$(expr $dob / 2 ) && perfect && python3 train.py > results_$b'_'$a"
現在當我打開我的終端時,我有兩次回顯錯誤:
expr: syntax error: unexpected argument ‘2’ expr: syntax error: unexpected argument ‘2’
我想輸出一個名為results_a_b的文件,其中 a 和 b 是在計算別名中定義的文件夾中的文件時定義的值,但是命令輸出結果__
別名幾乎總是最好寫成函式。這裡棘手的部分是您將每個命令連結在一起以
&&
提前中止——我set -e
在這裡使用子shell 以獲得相同的效果。runhole() { ( # run in a subshell to avoid side-effects in the current shell set -e perfect cd data_series_test doa=$( files=(*); echo "${#files[@]}" ) a=$(( doa / 2 )) perfect cd data_series_train dob=$( files=(*); echo "${#files[@]}" ) b=$(( dob / 2 )) perfect python3 train.py > "results_${b}_$a" ) }