我正在尝试生成具有不存在的主目录集的用户列表。看来我应该可以用 awk 来做到这一点,但是我的语法有问题。
它一直在] 告诉我“无效的语法”。我究竟做错了什么?
awk -F: '{ if(![ -d "$6"]){ print $1 " " $3 " " $7}}' /etc/passwd
Run Code Online (Sandbox Code Playgroud)
我可能最终会使用的最终代码是:
awk -F: '{if(system( "[ -d " $6 " ]") == 1 && $7 != "/sbin/nologin" ) {print "The directory " $6 " does not exist for user " $1 }}' /etc/passwd
Run Code Online (Sandbox Code Playgroud)
我正在使用 Tiny Core Linux 并尝试安装 Vmware Tools,这当然需要内核头文件 :-)。
看起来他们没有在包中随时可用的内核头文件,但他们确实有内核源代码。因此,我下载了该源代码,并尝试从中创建标题,但我不知道自己在做什么。
在我遇到的谷歌搜索中,它听起来像:
make headers_install
Run Code Online (Sandbox Code Playgroud)
可能会做我需要它做的事情,这实际上是一个正确的 make 目标,但它会出现以下错误:
tc@box:/usr/src/linux-3.16.6$ make headers_install
CHK include/generated/uapi/linux/version.h
HOSTCC arch/x86/tools/relocs_32.o
In file included from arch/x86/tools/relocs_32.c:1:0:
arch/x86/tools/relocs.h:17:32: fatal error: tools/le_byteshift.h: No such file or directory
#include <tools/le_byteshift.h>
^
compilation terminated.
scripts/Makefile.host:134: recipe for target 'arch/x86/tools/relocs_32.o' failed
make[1]: *** [arch/x86/tools/relocs_32.o] Error 1
arch/x86/Makefile:181: recipe for target 'archscripts' failed
make: *** [archscripts] Error 2
Run Code Online (Sandbox Code Playgroud)
我在这里是在正确的轨道上,我只是缺少依赖项或其他东西,还是我完全在错误的轨道上?
有人可以给我有关下一步如何进行的任何指示吗?看起来“tools/le_byteshift.h”不知何故丢失了,但我不确定从哪里开始隔离哪个包才能使其正常工作。
如何从源代码制作内核头文件?任何指针都非常感谢!
我正在尝试验证所有包,除了我知道由于已知原因会失败的预定义包列表。该脚本将在我们环境中的所有 Solaris 系统上运行,以确认系统基线。
我对任何可以在这里工作的技术持开放态度,并且可以放在一行中(我用于验证的工具的限制)。
我最初的想法是我会获取一个 pkg 列表,通过 AWK 运行它以获取包名称,过滤掉我不想要的包,然后对每个剩余的单独的包运行单独的 pkg 验证。
这是我在下面创建的代码:
pkg list | awk 'BEGIN {c=0} $1 == "exclude1" || $1 == "exclude2" { next } { system("pkg verify " $1); c++ } END { if (c == 0) print "none" }'
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是我没有看到任何输出,即使我知道应该有一些事情没有通过 pkg 验证。
我认为系统(会捕获输出,但我对 AWK 比较陌生,可能是我误解了一些东西。
我有两个需要运行的脚本,它们都需要以相同方式设置的相同变量。结果我想我会把变量的设置分解成一个单独的脚本。但是,我似乎无法让它在主脚本中显示变量的地方正常工作。
例如,这是我的主要脚本:
#!/bin/sh
. ./vars
printenv
Run Code Online (Sandbox Code Playgroud)
这是我在脚本“vars”中的内容:
#!/bin/sh
MYVAR=MYVAL
echo "EXECUTED!!"
Run Code Online (Sandbox Code Playgroud)
在输出中,我成功看到“EXECUTED!!”,但变量 MYVAR 未设置为任何内容。
EXECUTED!!
MAIL=/var/mail/testuser
SSH_CLIENT=192.168.110.1 62953 22
USER=testuser
SHLVL=1
HOME=/home/testuser
OLDPWD=/home/testuser/test
SSH_TTY=/dev/pts/0
LOGNAME=testuser
_=./mainScript
TERM=xterm
PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
LANG=en_US.UTF-8
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:
SHELL=/bin/bash
PWD=/home/testuser
SSH_CONNECTION=192.168.110.1 62953 192.168.110.133 22
Run Code Online (Sandbox Code Playgroud) awk ×2
bash ×1
bourne-shell ×1
directory ×1
header-file ×1
linux-kernel ×1
scripting ×1
shell ×1
solaris ×1