請我需要幫助!這是我的第一個 bash 腳本,它在某些時候調用 python 腳本。但我總是在第 28 行和第 40 行得到這個輸出:./startTests.sh: line 28: 'logs/tp1/load-test1-workloada.txt': No such file or directory目錄logs/tp1確實存在!我認為這是我必須在那里使用的 char '>' 的東西,但我不知道如何修復它。這是我的腳本:#! /bin/bashecho -e "\033[01;34m------------------------------"echo -e "| Testes YCSB 0.17 |"echo -e "------------------------------\033[01;37m"echo -e 'Está rodando o script da raiz do YCSB? (y/n)'read yesnoif [ $yesno = 'y' ]; then echo -e 'Número de throughputs:' read numOfThroughputs echo -e 'Número de testes:' read numOfTests echo -e 'Iniciando...' for ((throughput = 1; throughput <= $numOfThroughputs; throughput++)); do echo -e '\033[01;32m------------------------------' echo -e "Throughput $throughput " echo -e '------------------------------\033[01;37m' for ((test = 1; test <= $numOfTests; test++)); do echo -e '\033[01;32m------------------------------' echo -e "Iciando teste $test" echo -e '------------------------------\033[01;37m' echo -e 'Loading Workload A' python ./bin/ycsb load mongodb-async -P workloads/workloada -p mongodb.url=mongodb://172.18.0.3:27017/ycsb?w=1 -P config/load.dat -s > "'logs/tp${throughput}/load-test${test}-workloada.txt'" for workload in {a,b,c,,f,d,e}; do if [ $workload = 'e' ]; then echo -e "\033[01;33mPrepara??o para workload $workload" echo -e "Apague o banco e precione QUALQUER TECLA 2X" read enter echo -e "Precione QUALQUER TECLA\033[01;37m" read enter2 python ./bin/ycsb load mongodb-async -P workloads/workloade -p mongodb.url=mongodb://172.18.0.3:27017/ycsb?w=1 -P config/load.dat -s > "'logs/tp${throughput}/load-test${test}-workloade.txt'"
2 回答

狐的傳說
TA貢獻1804條經驗 獲得超3個贊
去掉雙引號內的單引號。
> "'logs/tp${throughput}/load-test${test}-workloada.txt'"
在路徑名中放入單引號,因為單引號在雙引號內沒有特殊含義。那應該是
> "logs/tp${throughput}/load-test${test}-workloada.txt"
您還可以在稍后的行中看到此內容:
> ""'logs/tp${throughput}/run-test${test}-workload${workload}.txt'"
這"
在開頭有一個額外的內容,這使得報價不平衡。它應該是:
> "logs/tp${throughput}/run-test${test}-workload${workload}.txt"
添加回答
舉報
0/150
提交
取消