我有一个简单的bash脚本
#!/bin/bash -x
for line in `tail /home/user/line`
do
echo $line
done
但是不知道为什么它会回响所有的单词,而不是下面的每一行都是输出。
++ tail /home/user/line
+ for line in '`tail /home/user/line`'
+ echo Linux
Linux
+ for line in '`tail /home/user/line`'
+ echo is
is
+ for line in '`tail
我想检查主机名,以确保它们符合Bash Shell中的标准命名约定。
假设主机名是ab-cde-01
wolf@linux:~$ h='ab-cde-01'
wolf@linux:~$ echo $h
ab-cde-01
wolf@linux:~$
我一开始就构建了if else循环,它运行得很好。
wolf@linux:~$ if [ $h = 'ab-cde-01' ]; then
> echo $h is a valid name
> else
> echo $h is an INVALID name
> fi
ab-cde-01
好吧。我又一次把头撞到Linux墙上了。我在这里做错了什么:
#! /bin/bash
echo
echo "1. Windows (Microsoft)
echo 2. Linux (Red Hat)
echo 3. MacOS (Apple)
echo
echo -n Select your OS choice [1, 2 or 3]: "
READ OS
echo
if [ "$OS" -eq 1 ]; then
echo "You picked Windows (Microsoft)."
fi
if [ "$OS"
这些是我的样本文件
user@linux:~$ ls -l | cut -d ' ' -f 10-
01. old Name.txt
02. old Name.txt
03. old Name.txt
test.txt
user@linux:~$
这就是我想做的。
user@linux:~$ for output in *'old Name'*; do echo $output; done
01. old Name.txt
02. old Name.txt
03. old Name.txt
user@linux:~$
因为实际的代码多次使用old Name
我正在运行以下脚本,将安装在系统上的CIFS共享文件复制到另一个目标系统。CIFS共享的绝对路径包含很少的空间,因此该路径失败了,我尝试在另一条不包含空格的路径上运行它,它工作得很好。我宣布CIFS共享绝对路径的方式似乎存在一些问题:
#!/bin/bash
set -x
BASEPATH="/mnt/smbdisks/IT_linux/IT Linux Systems Dev & Support/Testing/Operation/Hello"
ADVICES="World Country State"
make_folder()
{
if [
我在学巴什。在做一个练习时,我犯了一个错误
ifs脚本要求选择,然后显示3条消息中的一条。该错误发生在选择之后。
#!/bin/bash
#nested ifs. script give user option to choose an OS.
osch=0
echo "1.Mac"
echo "2.Linux"
echo -n "Select your OS choice [1 or 2]? "
read osch
if [ $osch -eq 1 ] ; then
echo "You pick up Mac"
else ###
我需要在shell脚本中使用echo和grep。我能用吗?
我试过了,但不正确:
echo Linux: grep "Linux" ~/workspace/ep-exercicios/m1/e2/intro-linux.html | wc -w
我需要显示消息:
Linux: (number of Linux word on the document).
示例:
Linux: 945
#!/usr/bin/env bash
echo 'Using conditional expression:'
[[ ' ' < '0' ]] && echo ok || echo not ok
[[ ' a' < '0a' ]] && echo ok || echo not ok
echo 'Using test:'
[ ' ' \< '0' ] && echo ok || echo not ok
echo $var命令可以很容易地调用bash中变量的值,如下所示
user@linux:~$ a=1; b=2; c=a+b
user@linux:~$ echo $a $b $c
1 2 a+b
user@linux:~$
我想要实现的是用x中的实际值替换a,b,c
user@linux:~$ a=1; b=2; c=a+b
user@linux:~$ for i in a b c; do echo "$i = x"; done
a = x
b = x
c = x
user@linux:~$
通过使用类似的for循环,我希望能得到这样的输出
a = 1
b = 2
c