1. 將目前的目錄下的檔案去除尾碼名".sh" for i in `ls .` do mv -v $i `echo ${i%%.sh}` done2.shell中在列檔案目錄時防止帶空格的檔案名稱被顯示成2個檔案帶空格的檔案名稱變數不被當成兩個參數 ls -1 目錄路徑 | while read linedoecho
$# 是傳給指令碼(或者函數)的參數個數, $0 是指令碼本身的名字, $@ 是傳給指令碼(或者函數)的所有參數的列表. 舉例:cat foo.sh#!/bin/bashecho "script name : $0"echo "# of arguments: $#"echo "all arguments : $@"echo "arguments in order:"for sArg in "$@"; do echo " $sArg"done----------------------
Solaris 有很多方面都用這和以前不大一樣,下面講Solaris中Shell的一些問題和解決方案。Solaris的預設Shell是sh,即命令列提示符為(root使用者):#而在用Linux命令列的提示符中既有使用者名稱,還有主機名稱以及當前路徑的名稱。這樣可以給人一目瞭然的感覺。不過Linux下一般預設Shell是bash,而不是sh。如果只想在當前的使用中切換Shell的話,方法很簡單,可以在命令列中輸入:$ bashbash-3.00$ cshdavid% sh$如果要永久性的改變預
一般的寫法是for f in `ls ./`但是如果檔案名稱中帶空格,比如"A B" 那麼雖然ls能正確列出,但是for卻會把空格當成分隔字元 將A,B分別賦給f,導致變成兩個檔案名稱研究發現問號?在檔案名稱中也可以代表空格。因此可以這樣寫:for f in `ls ./ | tr " " "\?"`先將ls的每一行的空格用tr替換為問號。這樣的f可以執行mv,cp等操作。echo也能正確將?變成空格顯示。要是涉及到字串操作不爽,反正現在已經在變數裡面了可以直接替換回來f=`tr "\?" "
工作中遇到一個小需求,需要對一系列的檔案進行重新命名。原始格式是string_1.obj,現在想把檔案名稱中的數字變成定長的,不足位元往前補零,即變成string_001.obj這種形式。自己學著寫了個指令碼,很菜的,貼上來請大家指點一下。#! /bin/bash# this script is used to rename files# the orignal filename is as XXXX_1.obj# and the final filename is as
原文寫於2010-11-03 18:29:20,網易部落格,已刪. 要在shell中產生隨機數,在bash中可以調用$RANDOM,引用一段對RANDOM的介紹. Each time this is referenced, a random integer between 0 and 32767 is generated. The sequence of random numbers may be initialized by assigning a value
資料流重導向就是將某個指令執行後應該要出現在螢幕上的資料, 給他傳輸到其它的地方,例如檔案或者是裝置 (例如印表機之類的!)!這玩意兒在 Linux 的文字模式底下可重要的! 尤其是如果我們想要將某些資料儲存下來時,就更有用了! 一般來說,如果你要執行一個指令,通常他會是這樣的: 我們執行一個指令的時候,這個指令可能會由檔案讀入資料,經過處理之後,再將資料輸出到螢幕上。 在圖中, standard output 與 standard error 分別代表標準輸出與標準錯誤輸出,