我想在这里做回声:
if [ $1 ]
then
temp=`sudo fuser $1/tcp 2> /dev/null | tr -s ' ' | cut -d ' ' -f 2`
echo 'The command '`cat /proc/$temp/cmdline`' use the port '$1
else
echo "Give a port number"
fi
在这样的一行:
if [ $1 ]
then
echo 'The command '`cat /proc/`sudo fuser $1/tcp 2> /dev/null | tr -s ' ' | cut -d ' ' -f 2`/cmdline`' use the port '$1
else
echo "Give a port number"
fi
但是shell解释了
`cat /proc/`
作为命令(这是正常的,我知道)
我只想知道我是否可以在一行中没有临时变量
编辑:现在我有了这个#!/bin/bash
RED='\033[0;33m'
NC='\033[0m'
#H
echo -e ${RED}'usePort.sh'${NC}
if [ $1 ]
then
echo "The command $(cat /proc/$(sudo fuser $1/tcp 2> /dev/null | tr -s ' ' | cut -d ' ' -f 2)/cmdline) use the port $1"
else
echo "Give a port number"
fi
输出是这样的:
$ ./usePort.sh 22
usePort.sh
./usePort.sh: line 9: warning: command substitution: ignored null byte in input
la commande /usr/sbin/sshd-D utilise le port 22
答案 0 :(得分:0)
#!/usr/bin/env bash
if [ -z "$1" ]; then
echo "your commands"
temp=$(sudo fuser "$1/tcp" 2> /dev/null | tr -s ' ' | cut -d ' ' -f 2)
else
echo "Give a port number"
fi
避免使用宽限`
,而是使用var=$( your_commands )