(test-it.sh)

#!/bin/sh

 

# Verify whether the directory of JavaScript Cases is inputted.

if [ $# -lt 1 ];then

echo "Please specify the directory of JavaScript Cases!"

exit

fi

# Verify whether the inputted directory exists.

if [ ! -d $1 ];then

echo "$1 does not exist!"

exit

fi

CURRENT_DIR=`dirname $0`

JSC_JIT=`echo "${CURRENT_DIR}/jsc_jit"`

JSC_NO_JIT=`echo "${CURRENT_DIR}/jsc_no_jit"`

# Verify whether the jsc with jit exists

if [ ! -f ${JSC_JIT} ];then

echo "JSC with JIT does not exist!"

exit

fi

# Verify whether the jsc without jit exists

if [ ! -f ${JSC_NO_JIT} ];then

echo "JSC without JIT does not exist!"

exit

fi

SUM=0

OK=0

NG=0

LOG=it-test.log

> $LOG

# Search each *.js file in the specified directory.

JS_FILES=`find $1 -name "*.vert"`

# Test each JS file with jsc_jit and jsc_no_jit.

echo "" | tee -a $LOG

DATE=`date`

echo "Test time:$DATE" | tee -a $LOG

for JS in $JS_FILES

do

BYTE_CODE_SIZE=0

MACHINE_CODE_SIZE=0

MAX_MACHINE_CODE_SIZE=0

echo "Testing ${JS} ..." | tee -a $LOG

echo -e "var stime = new Date();/n" > case.js

cat ${JS} >> case.js

echo -e "var etime = new Date();/nprint(/"Duration is:/", etime-stime);/n" >> case.js

 

# Get executive time of case with jsc_jit

${JSC_JIT} case.js &> tmp

# Get the executive time

TIME_JIT=`cat tmp | grep "Duration" | awk -F: '{print $2}'`

# Get the compilation time

compile_times=`cat tmp | grep "Compilation Time(ms)" | awk -F: '{print $2}'`

loop=`echo $compile_times | wc -l`

all_compile_time=0

# Get the sum of all time

for compile_time in $compile_times

do

all_compile_time=`expr ${all_compile_time} + ${compile_time}`

done

# Calculate byte code size

SIZES=`cat tmp | grep "Byte Code Size(byte):" | awk -F: '{print $2}'`

for SIZE in ${SIZES}

do

BYTE_CODE_SIZE=`expr ${BYTE_CODE_SIZE} + ${SIZE}`

done

 

# Calculate machine code size

SIZES=`cat tmp | grep "Machine Code Size(byte):" | awk -F: '{print $2}'`

for SIZE in ${SIZES}

do

MACHINE_CODE_SIZE=`expr ${MACHINE_CODE_SIZE} + ${SIZE}`

if [ ${SIZE} -gt ${MAX_MACHINE_CODE_SIZE} ]

then

MAX_MACHINE_CODE_SIZE=${SIZE}

fi

done

# Get memory usage

MEM_USAGE=`cat tmp | grep "heap total" | awk '{print $6 $9 $12}'`

HEAP_TOTAL=`echo $MEM_USAGE | awk -F, '{print $1}'`

HEAP_PEAK=`echo $MEM_USAGE | awk -F, '{print $2}'`

STACK_PEAK=`echo $MEM_USAGE | awk -F, '{print $3}'`

 

# Get executive time of case with jsc_no_jit

TIME_NO_JIT=`${JSC_NO_JIT} case.js | grep "Duration" | awk -F: '{print $2}'`

 

 

echo "Running Time (ms)" | tee -a $LOG

printf "Used JIT                   :%8d/n" ${TIME_JIT} | tee -a $LOG

printf "Unused JIT                 :%8d/n" ${TIME_NO_JIT} | tee -a $LOG

printf "Compiling Time (ms)        :%8d/n" ${all_compile_time} | tee -a $LOG

printf "Byte Code Size(byte)       :%8d/n" ${BYTE_CODE_SIZE} | tee -a $LOG

printf "Machine Code Size(byte)    :%8d/n" ${MACHINE_CODE_SIZE} | tee -a $LOG

printf "Max Machine Code Size(byte):%8d/n" ${MAX_MACHINE_CODE_SIZE} | tee -a $LOG

echo "Memory usage(byte)" | tee -a $LOG

printf "Heap total                 :%8d/n" ${HEAP_TOTAL} | tee -a $LOG

printf "Heap peak                  :%8d/n" ${HEAP_PEAK} | tee -a $LOG

printf "Stack peak                 :%8d/n" ${STACK_PEAK} | tee -a $LOG

echo "*************************************************************" | tee -a $LOG

echo "" | tee -a $LOG

rm case.js

if [ -z ${TIME_JIT} ];then

NG=`expr $NG + 1`

else

OK=`expr $OK + 1`

fi

SUM=`expr $SUM + 1`

done

echo "----------------------------" | tee -a $LOG

printf "TOTAL NUMBER:%3d/n" $SUM | tee -a $LOG

printf "OK NUMBER   :%3d/n" $OK | tee -a $LOG

printf "NG NUMBER   :%3d/n" $NG | tee -a $LOG

echo "----------------------------" | tee -a $LOG

echo "" | tee -a $LOG

rm tmp -rf

<think>好的,我现在遇到了一个问题,就是在使用Kafka的时候输入kafka-topics.sh命令时提示找不到。我需要解决这个问题,但不太确定具体的原因。首先,我应该回忆一下Kafka的基本安装和配置步骤,可能哪里出错了。 首先,kafka-topics.sh是Kafka自带的一个脚本,用来管理主题。如果系统提示找不到这个命令,可能的原因有几个。最常见的是Kafka没有正确安装,或者安装路径没有添加到系统的环境变量中。也就是说,系统无法在默认的路径下找到这个脚本文件。 那用户可能在哪里安装了Kafka呢?通常,Kafka会被安装在某个目录下,比如/opt/kafka或者用户自定义的路径。如果用户自己解压了Kafka的压缩包,但没把bin目录添加到PATH环境变量里,就会导致命令无法识别。这时候,用户可能需要手动进入Kafka的安装目录下的bin文件夹,或者将路径添加到bashrc或profile文件中。 另外,检查一下用户是否真的下载并安装了Kafka。有时候可能下载了错误的版本,或者安装过程中出现了问题,导致某些文件缺失。比如,引用中的kafka-console-producer.sh和kafka-console-consumer.sh都是Kafka的脚本,如果这些也存在问题,可能整个安装都有问题。但用户的问题仅限于kafka-topics.sh,所以可能路径问题更可能。 接下来,用户可能使用了Docker或者其他容器化技术来部署Kafka。例如,引用[2]中提到在Docker容器中使用kafka作为服务名来连接。如果用户是在容器内运行命令,可能需要确认是否进入了正确的容器,或者在容器中是否正确安装了Kafka。有时候,容器内的路径可能与宿主机不同,或者启动容器时没有挂载相应的目录。 还有可能,用户在使用kafka-topics.sh的时候没有赋予执行权限。比如引用[3]中的kafka-reassign-partitions.sh有执行权限,而用户的问题脚本可能权限不足。这时候需要用chmod +x来添加执行权限。 那么,解决步骤可能包括: 1. 确认Kafka是否正确安装,找到安装路径。 2. 检查PATH环境变量是否包含Kafka的bin目录。 3. 如果使用Docker,确认是否在容器内执行命令,或者是否正确进入容器。 4. 检查脚本文件是否存在,是否有执行权限。 5. 尝试使用绝对路径运行脚本,比如/path/to/kafka/bin/kafka-topics.sh。 例如,用户可能需要进入Kafka的安装目录下的bin目录,然后执行./kafka-topics.sh,或者将路径添加到环境变量。另外,如果是通过包管理器安装的,可能需要确认包是否完整。 另外,参考引用中的信息,比如在Docker中使用时可能需要使用完整的路径,或者在容器中已经配置好的路径,所以用户可能需要根据他们的部署方式来调整命令。比如,在容器内部可能已经设置了PATH,但用户可能没有正确进入容器或者使用docker exec来执行命令。 总结可能的原因和对应的解决方案后,应该分步骤指导用户检查安装路径、环境变量、执行权限以及容器环境等因素,确保他们能够找到并正确执行kafka-topics.sh脚本。</think>要解决`kafka-topics.sh`命令未找到的问题,请按照以下步骤排查: --- ### **步骤1:确认Kafka安装路径** Kafka脚本文件默认位于安装目录的`bin`子目录下。 - 若手动安装Kafka,默认路径可能是:`/opt/kafka_2.13-3.3.1/bin/`(版本号可能不同)[^3] - 若通过包管理器安装,尝试使用命令查找路径: ```bash find / -name "kafka-topics.sh" 2>/dev/null ``` --- ### **步骤2:检查环境变量配置** 若脚本存在但无法直接调用,需将Kafka的`bin`目录加入`PATH`环境变量: 1. 打开配置文件(如`~/.bashrc`或`~/.bash_profile`) 2. 添加以下内容(替换为实际路径): ```bash export PATH="$PATH:/path/to/kafka/bin" ``` 3. 使配置生效: ```bash source ~/.bashrc ``` --- ### **步骤3:验证执行权限** 确保脚本有可执行权限: ```bash chmod +x /path/to/kafka/bin/kafka-topics.sh ``` --- ### **步骤4:容器化部署检查** 若通过Docker运行Kafka(如引用[2]中的配置): 1. 进入容器执行命令: ```bash docker exec -it kafka /bin/bash ``` 2. 在容器内调用脚本(注意容器内路径可能与宿主机不同): ```bash /opt/bitnami/kafka/bin/kafka-topics.sh --list --bootstrap-server localhost:9092 ``` --- ### **步骤5:使用绝对路径测试** 直接通过绝对路径调用脚本: ```bash /path/to/kafka/bin/kafka-topics.sh --create --topic test --bootstrap-server localhost:9092 ``` --- ### **常见问题总结** | 原因 | 解决方案 | |---------------------|--------------------------------------| | 未配置环境变量 | 将`bin`目录加入`PATH`或使用绝对路径 | | 脚本权限不足 | 执行`chmod +x kafka-topics.sh` | | Docker容器未正确进入 | 通过`docker exec`进入容器再执行命令 | ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值