スクリプトを実行するMacOS端末に./test1.shを書き込むときは?端末でスクリプトを実行するプロセス
私は自分のマシンにoh-my-zshをインストールしていますので、端末にzshを実行します。そのような
実行test1.sh:
./test1.sh
出力
1 март 2016/ 1 януари 2015/
1 март 2016/
./test3.sh: line 14: declare: -A: invalid option declare: usage: declare [-afFirtx] [-p] [name[=value] ...]
./test3.sh: line 15: януари: syntax error: invalid arithmetic operator (error token is "?нуари")
blah
この
zsh test3.sh
出力のようにそれを実行している間
1 март 2016/
1 януари 2015/
blah
declare -A newarray
newarray[януари]="1"
qn="януари"
echo ${newarray[$qn]}
出力
1
を実行している一方でそれはなぜですか?
test3.sh
# backup IFS
SAVEIFS=$IFS
# set IFS to newline
IFS=$(echo -en "\n\b")
# get files
FILES=$(ls -1 -d */)
echo ${FILES}
IFS='\n'
read dirsNameArray <<< ${FILES}
echo ${dirsNameArray[0]}
declare -A monthMap
monthMap['януари']="1"
# monthMap[февруари]="2"
# monthMap[март]="3"
# monthMap[април]="4"
# monthMap[май]="5"
# monthMap[юни]="6"
# monthMap[юли]="7"
# monthMap[август]="8"
# monthMap[септември]="9"
# monthMap[октомври]="10"
# monthMap[ноември]="11"
# monthMap[декември]="12"
# iterate over files
IFS='\n'
for f in $FILES
do
echo "blah"
IFS=' '
# read -r dirNameArray <<< $f
# echo "${monthMap[${dirNameArray[2]}]}"
IFS='\n'
done
# restore $IFS
IFS=$SAVEIFS
ありがとう私の男:)理にかなっています。 – mp3por