我是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
答案 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