Bash

’expr:語法錯誤:意外參數’ - 來自別名的結果

  • September 2, 2019

我最近在我的 .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"
   )
}

引用自:https://unix.stackexchange.com/questions/538731