Cut and tr:找不到命令

时间:2018-08-19 17:33:04

标签: linux bash shell

此代码出了什么问题?

#!/bin/sh
PATH=/sbin:/bin

. /lib/init/vars.sh
. /lib/lsb/init-functions

 HOSTNAME="TAI-$(ifconfig | grep "HWaddr" | cut -d" " -f11 | tr -s ":" "-")"

然后:

root@teste:/ ./hostname.sh <enter>

脚本返回:

./hostname.sh: 7: ./hostname.sh: cut: not found
./hostname.sh: 7: ./hostname.sh: tr: not found

但是在控制台(命令行)中运行完美。

root@teste:/ HOSTNAME="TAI-$(ifconfig | grep "HWaddr" | cut -d" " -f11 | tr -s ":" "-")" <enter>

root@teste:/ echo $HOSTNAME <enter>
root@teste:/ TAI-b8-27-eb-81-4f-c5  - It's OK.

有人可以帮我吗?

非常感谢。

1 个答案:

答案 0 :(得分:3)

看一行:

cmake_minimum_required(VERSION 3.10)
project(IC4D C)

set(CMAKE_C_STANDARD 99)

include_directories( /Users/user/CLionProjects/IC4D/include/ )
link_directories( /Users/user/CLionProjects/IC4D/lib/ )

find_path(AVDEVICE_INCLUDE_DIR include/libavdevice/avdevice.h)
find_library(AVDEVICE_LIBRARY lib/libavdevice.58.dylib)

find_path(AVFORMAT_INCLUDE_DIR include/libavformat/avformat.h)
find_library(AVFORMAT_LIBRARY lib/libavformat.58.dylib)

find_path(AVCODEC_INCLUDE_DIR include/libavcodec/avcodec.h)
find_library(AVCODEC_LIBRARY lib/libavcodec.58.dylib)

find_path(SWSCALE_INCLUDE_DIR include/libswscale/swscale.h)
find_library(SWSCALE_LIBRARY lib/libswscale.5.dylib)

find_path(AVUTIL_INCLUDE_DIR include/libavutil/avutil.h)
find_library(AVUTIL_LIBRARY lib/libavutil.56.dylib)

find_path(SWRESAMPLE_INCLUDE_DIR include/libswresample/swresample.h)
find_library(SWRESAMPLE_LIBRARY lib/libswresample.3.dylib)

find_package(SDL2 REQUIRED)

add_executable(IC4D main.c)

target_include_directories(IC4D PRIVATE ${SDL2_INCLUDE_DIRS} ${AVDEVICE_INCLUDE_DIR} ${AVFORMAT_INCLUDE_DIR} ${AVCODEC_INCLUDE_DIR} ${SWSCALE_INCLUDE_DIR} ${AVUTIL_INCLUDE_DIR} ${SWRESAMPLE_INCLUDE_DIR})
target_link_libraries(IC4D PRIVATE ${SDL2_LIBRARIES} ${AVDEVICE_LIBRARY} ${AVFORMAT_LIBRARY} ${AVCODEC_LIBRARY} ${SWSCALE_LIBRARY} ${AVUTIL_LIBRARY} ${SWRESAMPLE_LIBRARY})

PATH=/sbin:/bin cuttr中,您的/usr/bin中缺少这些内容。将PATH添加到:/usr/bin变量的末尾。

PATH