涉及grep的小脚本传递给下一个命令

时间:2017-06-18 14:36:58

标签: bash grep

我的网卡名称在启动后保持enp4s0enp3s0之间的名称。此外,它还会启动DOWN。我每次登录时都必须手动执行此操作:

ip link   # it outputs the names
sudo ip link set enpXs0 up
sudo dhcpcd

所以我尝试使用.xinitrc制作一个小脚本。这就是我想出的:

#!/bin/bash
CARD=ip link | grep -o enp[4\|5]s0
echo ${CARD}   # check
sudo ip link set ${CARD} up
sudo dhcpcd

但不起作用:link: missing operand。我认为在配合CARD时我必须使用引号,但事实并非如此。两者都没有使用完整路径名(/usr/bin/ip)。如何设置CARD变量?

2 个答案:

答案 0 :(得分:2)

#!/bin/bash
CARD=`ip link | grep -o enp[4\|5]s0` #here in card need save result
echo ${CARD}   # check
sudo ip link set ${CARD} up
sudo dhcpcd

命令替换。

答案 1 :(得分:2)

命令替换:

#!/bin/bash
CARD=$(ip link | grep -o enp[4\|5]s0) #here in card need save result
echo ${CARD}   # check
sudo ip link set ${CARD} up
sudo dhcpcd

Backtick are not recommended while using command substitution.