打印出usb序列号的Bash脚本

时间:2014-04-09 06:46:23

标签: bash

我是bash脚本的新手。所以,我需要帮助。下面的命令打印出USB序列号。但我不知道如何将它存储在一个字符串中。因为我想与其他字符串进行比较以查看它们是否匹配。其他字符串可以是任何字符串。所以,如果有人可以帮我写代码,我会非常感激。提前致谢。

lsusb -v | awk '/iSerial/ {if ($2 == "3" || $2 == "2") {print $3}}'

anubhava,如果我想比较两个字符串,这是否正确。

 #!/bin/sh 
string="asd11ds"
output=$(lsusb -v | awk '/iSerial/ && ($2 == "3" || $2 == "2")) {print $3}')
 echo $output
 if [[$output==$string]];then
 echo"the two string are the same/are different"
 fi

2 个答案:

答案 0 :(得分:1)

使用$(...)表示法(命令替换)来存储命令的输出。

你也可以缩短你的意思:

output=$(lsusb -v | awk '/iSerial/ && ($2 == "3" || $2 == "2")) {print $3}')

答案 1 :(得分:0)

由于您的问号标记为bash,因此我提供了bash脚本

#!/usr/bin/env bash

string="asd11ds"
output=$(lsusb -v | awk '/iSerial/ && ($2 == "3" || $2 == "2")) {print $3}')

echo $output

if [[ "$output" == "$string" ]]; then
 echo "the two strings are same"
else
 echo "the two strings are different"
fi